运行 ADDM 分析并获取报告
Oracle性能命令
-- Analyze the range between two snapshots (in CDB root):
VAR tname VARCHAR2(60)
BEGIN
:tname := 'ADDM_<begin_snap>_<end_snap>';
DBMS_ADDM.ANALYZE_DB(
task_name => :tname,
begin_snapshot => <begin_snap>,
end_snapshot => <end_snap>);
END;
/
SET LONG 1000000 LONGCHUNKSIZE 1000000 LINESIZE 200 PAGESIZE 0
SELECT DBMS_ADDM.GET_REPORT(task_name => :tname) FROM dual;
-- Findings summary (by impact):
SET PAGESIZE 100
SELECT finding_name, type, ROUND(impact/1e6) AS impact_sec, message
FROM dba_advisor_findings
WHERE task_name = :tname
ORDER BY impact DESC;
-- Interactive alternative: @?/rdbms/admin/addmrpt.sql
-- Clean up the task when done:
EXEC DBMS_ADDM.DELETE(task_name => :tname);作用
Automatic Database Diagnostic Monitor 分析两个 AWR 快照之间的 DB time,报告瓶颈及其影响(findings)并给出具体建议。
适用场景
在阅读 AWR 报告前快速获得"应该看哪里"的摘要,或在每次快照后自动运行的 ADDM 之外分析自定义范围。
注意
需要 Diagnostics Pack 许可。不要盲目应用 ADDM 建议(调大参数、运行 SQL Tuning Advisor 等);请对照 AWR advisory 部分验证内存建议。范围不能跨越重启。