[Oracle] - 性能优化工具(3) - ADDM

简介:

ADDM 通过检查和分析AWR获取的数据来推断Oracle数据库中可能的问题。并给出优化建议。

获取ADDM的方法例如以下:

@?/rdbms/admin/addmrpt.sql
以下能够看一个样例:

--第一步:创建測试用的表
drop table t cascade constraints purge;
create table t AS SELECT * FROM dba_objects ;


--第二步:快照
exec dbms_workload_repository.create_snapshot(); 

--第三步:模拟进行
DECLARE
    v_var number;
BEGIN
    FOR n IN 1..10000
    LOOP
        select count(*) into v_var from t;
    END LOOP;
END;
/


---第四步:再次快照
exec dbms_workload_repository.create_snapshot(); 


--第五步:创建一个优化诊断任务并运行
--(1)先获取到两次快照的ID:
select snap_id from (SELECT * FROM dba_hist_snapshot ORDER BY snap_id desc) where rownum <=2;


--(2)创建优化任务,并运行:
DECLARE
    task_name VARCHAR2(30) := 'ADDM_02';
    task_desc VARCHAR2(30) := 'ADDM Feature Test';
    task_id NUMBER;
BEGIN
    dbms_advisor.create_task('ADDM', task_id, task_name, task_desc, null);
    dbms_advisor.set_task_parameter(task_name, 'START_SNAPSHOT', 2033);
    dbms_advisor.set_task_parameter(task_name, 'END_SNAPSHOT', 2034);
    dbms_advisor.set_task_parameter(task_name, 'INSTANCE', 1);
    dbms_advisor.set_task_parameter(task_name, 'DB_ID', 977587123);
    dbms_advisor.execute_task(task_name);
END;
/

--第六步:查看优化建议结果
--通知函数dbms_advisor.get_task_report能够得到优化建议结果。
set pagesize 0
set linesize 121
spool d:\addm_rpt.html
SET LONG 1000000 PAGESIZE 0 LONGCHUNKSIZE 1000
COLUMN get_clob FORMAT a80
SELECT dbms_advisor.get_task_report('ADDM_02', 'TEXT', 'ALL') FROM DUAL;
spool off


生成的ADDM例如以下:

 

-------------------------------- 操作 在 INDEX "LJB.GENDER_IDX" (对象 ID 为 110057) 中检測到了严重的行争用。

使用 指定的堵塞 SQL 语句在应用程序逻辑中跟踪行争用的起因。

相关对象 ID 为 110057 的数据库对象。 原理 SQL_ID 为 "cafv93454t4jv" 的 SQL 语句在行锁上被堵塞。

相关对象 SQL_ID 为 cafv93454t4jv 的 SQL 语句。 insert into t values ('M',78, 'young','TTT') 原理 具有 ID 130 和序列号 423 (在实例号 1 中) 的会话是构成此建议案中的优化建议 的 98% 的堵塞会话。

建议案 2: 应用程序分析 预计的收益为 .14 个活动会话, 占总活动的 25.4\%。 ------------------------------- 操作 在 TABLE "LJB.T" (对象 ID 为 110056) 中检測到了严重的行争用。

使用指定的阻 塞 SQL 语句在应用程序逻辑中跟踪行争用的起因。

相关对象 ID 为 110056 的数据库对象。 原理 SQL_ID 为 "aycghy7dbzja1" 的 SQL 语句在行锁上被堵塞。 相关对象 SQL_ID 为 aycghy7dbzja1 的 SQL 语句。 delete from T WHERE GENDER='M' 原理 具有 ID 130 和序列号 423 (在实例号 1 中) 的会话是构成此建议案中的优化建议 的 100% 的堵塞会话。 导致查找结果的故障现象: ------------ 等待类 "应用程序" 消耗了大量数据库时间。 受影响的是 .52 个活动会话, 占总活动的 97.76\%。

查找结果 2: 顶级 SQL 语句 受影响的是 .52 个活动会话, 占总活动的 96.74\%。 ------------------------------- 发现 SQL 语句消耗了大量数据库时间。这些语句提供了改善性能的绝佳机会。 建议案 1: SQL 优化 预计的收益为 .38 个活动会话, 占总活动的 71.45\%。

-------------------------------- 操作 研究 INSERT 语句 (SQL_ID 为 "cafv93454t4jv"), 确定能否够改善性能。能够利 用此 SQL_ID 的 ASH 报告来补充此处给出的信息。

相关对象 SQL_ID 为 cafv93454t4jv 的 SQL 语句。 insert into t values ('M',78, 'young','TTT') 原理 SQL 在 CPU, I/O 和集群等待上花费的时间仅仅占其数据库时间的 0%。因此, SQL 优 化指导不适用于这样的情况。请查看 SQL 的性能数据以找出可能的改进方法。 原理 此 SQL 的数据库时间由下面部分构成: SQL 运行占 100%, 语法分析占 0%, PL/SQL 运行占 0%, Java 运行占 0%。 原理 SQL_ID 为 "cafv93454t4jv" 的 SQL 语句运行了 1 次, 每次运行平均用时 17640 秒。 原理 等待事件 "enq: TX - row lock contention" (在等待类 "Application" 中) 消耗 了数据库时间的 100% (该数据库时间为处理具有 SQL_ID "cafv93454t4jv" 的 SQL 语句时所用的时 间)。

建议案 2: SQL 优化 预计的收益为 .13 个活动会话, 占总活动的 25.29\%。

-------------------------------- 操作 研究 DELETE 语句 (SQL_ID 为 "aycghy7dbzja1"), 确定能否够改善性能。能够利 用此 SQL_ID 的 ASH 报告来补充此处给出的信息。 相关对象 SQL_ID 为 aycghy7dbzja1 的 SQL 语句。 delete from T WHERE GENDER='M' 原理 SQL 在 CPU, I/O 和集群等待上花费的时间仅仅占其数据库时间的 0%。因此, SQL 优 化指导不适用于这样的情况。请查看 SQL 的性能数据以找出可能的改进方法。 原理 此 SQL 的数据库时间由下面部分构成: SQL 运行占 100%, 语法分析占 0%, PL/SQL 运行占 0%, Java 运行占 0%。 原理 SQL_ID 为 "aycghy7dbzja1" 的 SQL 语句运行了 1 次, 每次运行平均用时 7917 秒 。 原理 等待事件 "enq: TX - row lock contention" (在等待类 "Application" 中) 消耗 了数据库时间的 100% (该数据库时间为处理具有 SQL_ID "aycghy7dbzja1" 的 SQL 语句时所用的时 间)。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 附加信息 ---- 各种信息 ---- 等待类 "提交" 并未消耗大量数据库时间。

等待类 "并发" 并未消耗大量数据库时间。 等待类 "配置" 并未消耗大量数据库时间。 等待类 "网络" 并未消耗大量数据库时间。 等待类 "用户 I/O" 并未消耗大量数据库时间。

会话连接和断开连接的调用并未消耗大量数据库时间。 对 SQL 语句的硬语法分析并未消耗大量数据库时间。 在分析时段的 99% 期间, 数据库的维护窗体是处于活动状态的。





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5211728.html,如需转载请自行联系原作者

相关文章
|
Oracle 关系型数据库 数据库
Oracle 11G常见性能诊断报告(AWR/ADDM/ASH)收集
Oracle 11G常见性能诊断报告(AWR/ADDM/ASH)收集
316 0
|
18天前
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
15 1
|
28天前
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
|
4月前
|
SQL Oracle 关系型数据库
关系型数据库Oracle备份工具
【7月更文挑战第19天】
81 4
|
4月前
|
Oracle 关系型数据库 Java
Oracle数据库导入工具IMP详解与用法
Oracle数据库导入工具IMP详解与用法
|
5月前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
5月前
|
Oracle 关系型数据库 Java
Oracle数据库导入工具IMP详解与用法
Oracle数据库导入工具IMP详解与用法
|
6月前
|
SQL 监控 Oracle
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
|
6月前
|
Oracle 关系型数据库
Oracle 管理诊断数据工具ADRCI
Oracle 管理诊断数据工具ADRCI
70 2
|
SQL Oracle 关系型数据库
Oracle常用工具
Oracle常用工具

相关实验场景

更多

推荐镜像

更多