无聊,把自己电脑上学习的数据库的ADDM报告拿到来看看,感觉性能很差啊 哈哈 仅供学习参考,
仅供学习参考,
仅供学习参考
任务 'ADDM:1392579372_1_572' 的 ADDM 报告 ------------------------------------ 分析时段 ---- AWR 快照范围从 571 到 572。 时段从 29-2月 -16 10.00.41 下午 开始 时段在 29-2月 -16 11.00.03 下午 结束 分析目标 ---- 数据库 'ORCL' (DB ID 为 1392579372)。 数据库版本 11.2.0.1.0。 ADDM 对实例 orcl 执行了分析, 该实例的编号为 1 并运行于 localhost.localdomain。 分析时段期间的活动 --------- 总数据库时间为 19763 秒。 活动会话的平均数量为 5.55。 查找结果概要 ------ 说明 活动的会话 建议案 活动的百分比 ------------------------ ------ --- 1 顶级 SQL 语句 3.36 | 60.544 2 按 "用户 I/O" 和 "集群" 统计的顶级段 3.26 | 58.672 3 PGA 不够大 3.12 | 56.231 4 提交和回退 1.29 | 23.22 5 "调度程序" 等待类 .25 | 4.560 6 I/O 吞吐量 .23 | 4.111 7 "并行" 等待类 .18 | 3.320 8 由于并行查询而产生的检查点 .07 | 1.320 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 查找结果和建议案 -------- 查找结果 1: 顶级 SQL 语句 受影响的是 3.36 个活动会话, 占总活动的 60.54\%。 -------------------------------- 发现 SQL 语句消耗了大量数据库时间。这些语句提供了改善性能的绝佳机会。 建议案 1: SQL 优化 估计的收益为 1.75 个活动会话, 占总活动的 31.56\%。 --------------------------------- 操作 对 SELECT 语句 (SQL_ID 为 "fpactj934kg4c") 运行 SQL 优化指导。 相关对象 SQL_ID 为 fpactj934kg4c 的 SQL 语句。 select count(*) from (SELECT distinct J.RECORDID, J.AJDJH, (CASE WHEN (J.SJFS = 1) THEN '来信登记' WHEN (J.SJFS = 2) THEN '接待登记' ELSE '' END ) AS SJFS, J.SJLX, J.AJZT, J.AJDJR, J.LASCR_ZZJG, J.CBC_LAC, J.CBR_LAC, J.CBC_LAJBLC, J.CBR_LAJBLC, J.JSRQ, JD.JDRQ, J.DJSJ, J.DCSJ, J.BJSJ_LAC, JD.BJDRS, J.SPR, J.LB, J.SQRRS, J.BSQRZL, J.BSQRMC, J.FYXWMC, J.MJ, J.QX, J.FYXWWH, J.YJTXWMC, J.YJTXWWH, to_char(J.YJTXWWHSJ,'yyyy-mm-dd') as YJTXWWHSJ, J.XZGLQY, J.XZXWLB, J.AJCLJG, J.AJCLZJG, J.BLWH, J.JALX, J.GBZT, J.CBCS, R.XM, R.SDDZ, J.LXRDZ FROM XZANJIANXX J LEFT JOIN XZJIEDAIXX JD on JD.RECORDID = J.JDXX_ID INNER JOIN XZANJIANRYXX R ON J.RECORDID = R.SSID AND R.XH = 1 WHERE 1 = 1 AND J.ISDELETE = 0) t1 原理 SQL 在 CPU, I/O 和集群等待上花费的时间占其数据库时间的 98%。这部分数据库时间可通过 SQL 优化指导进行改善。 原理 此 SQL 的数据库时间由以下部分构成: SQL 执行占 100%, 语法分析占 0%, PL/SQL 执行占 0%, Java 执行占 0%。 原理 SQL_ID 为 "fpactj934kg4c" 的 SQL 语句执行了 5 次, 每次执行平均用时 1229 秒。 原理 TABLE "XZANJIANXX" (对象 ID 为 83618) 的 I/O 和集群等待消耗了在此 SQL 语句上花费的数据库时间的 89%。 原理 TABLE "XZANJIANRYXX" (对象 ID 为 83319) 的 I/O 和集群等待消耗了在此 SQL 语句上花费的数据库时间的 8%。 建议案 2: SQL 优化 估计的收益为 1.08 个活动会话, 占总活动的 19.44\%。 --------------------------------- 操作 对 SELECT 语句 (SQL_ID 为 "91kyg7ahvn10u") 运行 SQL 优化指导。 相关对象 SQL_ID 为 91kyg7ahvn10u 的 SQL 语句。 select * from (select rs.*,rownum rnm from (SELECT J.RECORDID, J.AJDJH, J.SJLX, (CASE WHEN (J.SJFS = 1) THEN '来信登记' WHEN (J.SJFS = 2) THEN '接待登记' ELSE '' END ) AS SJFS, to_char(J.JSRQ,'yyyy-mm-dd') as JSRQ, to_char(J.BJSJ_LAC,'yyyy-mm-dd') as BJSJ, R.XM AS XM, R.SDDZ AS ZZ, J.BSQRMC, J.AJDJR, J.LASCR_ZZJG, J.CBR_LAC, J.SPR, J.AJZT_CODE, J.AJZT, J.GBZT, J.Cjajdjh, J.BAZT, J.MJ, J.QX, J.BADJH, J.SPJG, J.CBCS FROM XZANJIANXX J, XZANJIANRYXX R WHERE J.RECORDID = R.SSID AND R.XH = 1 AND J.ISDELETE = 0 ORDER BY (CASE WHEN J.LASCR_ZZJG = '系统管理员' THEN 1 ELSE 2 END ), J.AJZT, J.AJDJH DESC ) rs where rownum:2 原理 SQL 在 CPU, I/O 和集群等待上花费的时间占其数据库时间的 98%。这部分数据库时间可通过 SQL 优化指导进行改善。 原理 此 SQL 的数据库时间由以下部分构成: SQL 执行占 100%, 语法分析占 0%, PL/SQL 执行占 0%, Java 执行占 0%。 原理 SQL_ID 为 "91kyg7ahvn10u" 的 SQL 语句执行了 14 次, 每次执行平均用时 269 秒。 原理 TABLE "XZANJIANXX" (对象 ID 为 83618) 的 I/O 和集群等待消耗了在此 SQL 语句上花费的数据库时间的 76%。 原理 TABLE "XZANJIANRYXX" (对象 ID 为 83319) 的 I/O 和集群等待消耗了在此 SQL 语句上花费的数据库时间的 22%。 建议案 3: SQL 优化 估计的收益为 .27 个活动会话, 占总活动的 4.85\%。 ------------------------------- 操作 对 SELECT 语句 (SQL_ID 为 "5d055dwy137nk") 运行 SQL 优化指导。 相关对象 SQL_ID 为 5d055dwy137nk 的 SQL 语句。 select count(*) from (SELECT J.RECORDID, J.AJDJH, J.SJLX, (CASE WHEN (J.SJFS = 1) THEN '来信登记' WHEN (J.SJFS = 2) THEN '接待登记' ELSE '' END ) AS SJFS, to_char(J.JSRQ,'yyyy-mm-dd') as JSRQ, to_char(J.BJSJ_LAC,'yyyy-mm-dd') as BJSJ, R.XM AS XM, R.SDDZ AS ZZ, J.BSQRMC, J.AJDJR, J.LASCR_ZZJG, J.CBR_LAC, J.SPR, J.AJZT_CODE, J.AJZT, J.GBZT, J.Cjajdjh, J.BAZT, J.MJ, J.QX, J.BADJH, J.SPJG, J.CBCS FROM XZANJIANXX J, XZANJIANRYXX R WHERE J.RECORDID = R.SSID AND R.XH = 1 AND J.ISDELETE = 0 ORDER BY (CASE WHEN J.LASCR_ZZJG = '系统管理员' THEN 1 ELSE 2 END ), J.AJZT, J.AJDJH DESC ) t1 原理 SQL 在 CPU, I/O 和集群等待上花费的时间占其数据库时间的 92%。这部分数据库时间可通过 SQL 优化指导进行改善。 原理 此 SQL 的数据库时间由以下部分构成: SQL 执行占 100%, 语法分析占 0%, PL/SQL 执行占 0%, Java 执行占 0%。 原理 SQL_ID 为 "5d055dwy137nk" 的 SQL 语句执行了 9 次, 每次执行平均用时 115 秒。 原理 TABLE "XZANJIANXX" (对象 ID 为 83618) 的 I/O 和集群等待消耗了在此 SQL 语句上花费的数据库时间的 90%。 建议案 4: SQL 优化 估计的收益为 .19 个活动会话, 占总活动的 3.48\%。 ------------------------------- 操作 对 SELECT 语句 (SQL_ID 为 "ctwm11jdacfh4") 运行 SQL 优化指导。 相关对象 SQL_ID 为 ctwm11jdacfh4 的 SQL 语句。 select * from (select rs.*,rownum rnm from (SELECT distinct J.RECORDID, J.AJDJH, (CASE WHEN (J.SJFS = 1) THEN '来信登记' WHEN (J.SJFS = 2) THEN '接待登记' ELSE '' END ) AS SJFS, J.SJLX, J.AJZT, J.AJDJR, J.LASCR_ZZJG, J.CBC_LAC, J.CBR_LAC, J.CBC_LAJBLC, J.CBR_LAJBLC, J.JSRQ, JD.JDRQ, J.DJSJ, J.DCSJ, J.BJSJ_LAC, JD.BJDRS, J.SPR, J.LB, J.SQRRS, J.BSQRZL, J.BSQRMC, J.FYXWMC, J.MJ, J.QX, J.FYXWWH, J.YJTXWMC, J.YJTXWWH, to_char(J.YJTXWWHSJ,'yyyy-mm-dd') as YJTXWWHSJ, J.XZGLQY, J.XZXWLB, J.AJCLJG, J.AJCLZJG, J.BLWH, J.JALX, J.GBZT, J.CBCS, R.XM, R.SDDZ, J.LXRDZ FROM XZANJIANXX J LEFT JOIN XZJIEDAIXX JD on JD.RECORDID = J.JDXX_ID INNER JOIN XZANJIANRYXX R ON J.RECORDID = R.SSID AND R.XH = 1 WHERE 1 = 1 AND J.ISDELETE = 0) rs where rownum:2 原理 SQL 在 CPU, I/O 和集群等待上花费的时间占其数据库时间的 100%。这部分数据库时间可通过 SQL 优化指导进行改善。 原理 此 SQL 的数据库时间由以下部分构成: SQL 执行占 100%, 语法分析占 0%, PL/SQL 执行占 0%, Java 执行占 0%。 原理 SQL_ID 为 "ctwm11jdacfh4" 的 SQL 语句执行了 5 次, 每次执行平均用时 134 秒。 原理 TABLE "XZANJIANXX" (对象 ID 为 83618) 的 I/O 和集群等待消耗了在此 SQL 语句上花费的数据库时间的 81%。 查找结果 2: 按 "用户 I/O" 和 "集群" 统计的顶级段 受影响的是 3.26 个活动会话, 占总活动的 58.67\%。 -------------------------------- 发现个别数据库段造成了大量的 "用户 I/O" 和 "集群" 等待。 建议案 1: 段优化 估计的收益为 2.83 个活动会话, 占总活动的 50.97\%。 --------------------------------- 操作 在 TABLE "XZANJIANXX" (对象 ID 为 83618) 上运行 "段指导"。 相关对象 ID 为 83618 的数据库对象。 操作 研究涉及 TABLE "XZANJIANXX" (对象 ID 为 83618) 的 I/O 的应用程序逻辑。 相关对象 ID 为 83618 的数据库对象。 操作 查看 "顶级 SQL 语句" 以找出此段上消耗大量 I/O 的 SQL 语句。例如, SELECT 语句 (SQL_ID 为 "fpactj934kg4c") 占此段上的 "用户 I/O" 和 "集群" 等待的 56%。 原理 对象的 I/O 使用统计信息为: 67 完整对象扫描, 1314089 物理读取, 1320 物理写入和 1260210 直接读取。 建议案 2: 段优化 估计的收益为 .43 个活动会话, 占总活动的 7.7\%。 ------------------------------ 操作 研究涉及 TABLE "XZANJIANRYXX" (对象 ID 为 83319) 的 I/O 的应用程序逻辑。 相关对象 ID 为 83319 的数据库对象。 操作 查看 "顶级 SQL 语句" 以找出此段上消耗大量 I/O 的 SQL 语句。例如, SELECT 语句 (SQL_ID 为 "91kyg7ahvn10u") 占此段上的 "用户 I/O" 和 "集群" 等待的 56%。 原理 对象的 I/O 使用统计信息为: 25 完整对象扫描, 245763 物理读取, 1375 物理写入和 235649 直接读取。 导致查找结果的故障现象: ------------ 等待类 "用户 I/O" 消耗了大量数据库时间。 受影响的是 3.4 个活动会话, 占总活动的 61.24\%。 查找结果 3: PGA 不够大 受影响的是 3.12 个活动会话, 占总活动的 56.23\%。 -------------------------------- PGA 大小不合适导致了对临时表空间的附加 I/O, 从而消耗了大量数据库时间。 分析期间, 参数 "pga_aggregate_target" 的值为 "256 M"。 建议案 1: 数据库配置 估计的收益为 .53 个活动会话, 占总活动的 9.56\%。 ------------------------------- 操作 通过将 "pga_aggregate_target" 参数的值设置为 358 M, 增加 PGA 的大小。 导致查找结果的故障现象: ------------ 等待类 "用户 I/O" 消耗了大量数据库时间。 受影响的是 3.4 个活动会话, 占总活动的 61.24\%。 查找结果 4: 提交和回退 受影响的是 1.29 个活动会话, 占总活动的 23.2\%。 ------------------------------- 在执行 COMMIT 和 ROLLBACK 操作时, 等待 "日志文件同步" 事件消耗了大量数据库时间。 建议案 1: 应用程序分析 估计的收益为 1.29 个活动会话, 占总活动的 23.2\%。 -------------------------------- 操作 研究应用程序逻辑, 了解通过增加事务处理的大小来减少 COMMIT 操作数量的可能性。 原理 应用程序每分钟执行 741 个事务处理, 每个事务处理的平均重做日志大小为 3900 字节。 建议案 2: 主机配置 估计的收益为 1.29 个活动会话, 占总活动的 23.2\%。 -------------------------------- 操作 研究改善对联机重做日志文件的 I/O 性能的可能性。 原理 对联机重做日志文件执行写入的平均大小为 19 K, 每次写入的平均时间为 61 毫秒。 原理 重做日志文件上的总 I/O 吞吐量的读取为每秒 43 K, 写入为每秒 48 K。 原理 重做日志 I/O 吞吐量由以下部分构成: RMAN 和恢复占 0%, 日志写进程占 52%, 归档程序占 0%, 流 AQ 占 0%, 所有其他活动占 47%。 导致查找结果的故障现象: ------------ 等待类 "提交" 消耗了大量数据库时间。 受影响的是 1.29 个活动会话, 占总活动的 23.2\%。 查找结果 5: "调度程序" 等待类 受影响的是 .25 个活动会话, 占总活动的 4.56\%。 ------------------------------ 等待类 "调度程序" 消耗了大量数据库时间。 没有可用的建议案。 查找结果 6: I/O 吞吐量 受影响的是 .23 个活动会话, 占总活动的 4.11\%。 ------------------------------ I/O 子系统的吞吐量比预期吞吐量小得多。 建议案 1: 主机配置 估计的收益为 .23 个活动会话, 占总活动的 4.11\%。 ------------------------------- 操作 考虑增加 I/O 子系统的吞吐量。Oracle 建议的解决方案是使用 SAME 方法将所有数据文件条带化。您可能还需要增加磁盘数量以获得更好的性能。 原理 分析期间, 数据文件的平均 I/O 吞吐量, 对于读取为每秒 3.5 M, 对于写入为每秒 81 K。单个块读取的平均响应时间为 16 毫秒。 导致查找结果的故障现象: ------------ 等待类 "用户 I/O" 消耗了大量数据库时间。 受影响的是 3.4 个活动会话, 占总活动的 61.24\%。 查找结果 7: "并行" 等待类 受影响的是 .18 个活动会话, 占总活动的 3.32\%。 ------------------------------ 等待类 "并发" 消耗了大量数据库时间。 对 "缓冲区忙" 事件的等待并未消耗大量数据库时间。 与共享池相关的闩锁争用并未消耗大量数据库时间。 对缓冲区高速缓存闩锁的争用并未消耗大量数据库时间。 DBMS_PIPE.PUT 调用中的等待并未消耗大量数据库时间。 索引块分离的争用未消耗大量数据库时间。 没有可用的建议案。 查找结果 8: 由于并行查询而产生的检查点 受影响的是 .07 个活动会话, 占总活动的 1.32\%。 ------------------------------ 由于对相同对象的并发 DML 和并行查询而产生的缓冲区高速缓存写入对 I/O 子系统的吞吐量有很大影响。 没有可用的建议案。 导致查找结果的故障现象: ------------ I/O 子系统的吞吐量比预期吞吐量小得多。 受影响的是 .23 个活动会话, 占总活动的 4.11\%。 等待类 "用户 I/O" 消耗了大量数据库时间。 受影响的是 3.4 个活动会话, 占总活动的 61.24\%。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 附加信息 ---- 各种信息 ---- 等待类 "应用程序" 并未消耗大量数据库时间。 等待类 "配置" 并未消耗大量数据库时间。 CPU 不是此实例的瓶颈。 等待类 "网络" 并未消耗大量数据库时间。 会话连接和断开连接的调用并未消耗大量数据库时间。 对 SQL 语句的硬语法分析并未消耗大量数据库时间。 在分析时段的 99% 期间, 数据库的维护窗口是处于活动状态的。