两个时间段之间的 AWR diff(比较周期)报告
Oracle性能命令
-- Interactive: @?/rdbms/admin/awrddrpt.sql (RAC: awrgdrpt.sql)
-- From a script: period 1 (good) = <bid1>-<eid1>, period 2 (bad) = <bid2>-<eid2>
SET LINESIZE 8000 PAGESIZE 0 TRIMSPOOL ON HEADING OFF FEEDBACK OFF
SPOOL /tmp/awr_diff.txt
SELECT output
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_TEXT(
dbid1 => (SELECT dbid FROM v$database), inst_num1 => 1,
bid1 => <bid1>, eid1 => <eid1>,
dbid2 => (SELECT dbid FROM v$database), inst_num2 => 1,
bid2 => <bid2>, eid2 => <eid2>));
SPOOL OFF
-- HTML: DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML作用
将两个快照范围并排显示,并给出 DB time、等待事件、负载概况和各 SQL 统计信息的百分比差异。直接回答"昨天还好,今天变慢"的问题。
适用场景
升级/补丁、参数变更、发布或统计信息收集后的回退分析;比较两天中相同时段。
注意
需要 Diagnostics Pack 许可。比较的时间段应长度相同、负载相近,否则差值会有误导性。要比较不同数据库(例如 prod 与 test),请用 awrextr.sql/awrload.sql 迁移 AWR 数据并传入对应的 dbid2。