创建 AWR 快照并生成两个快照之间的 AWR 报告
Oracle性能命令
-- 1) Manual snapshot before and after the event (run in CDB root):
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;
-- 2) List snapshots:
SELECT snap_id,
TO_CHAR(begin_interval_time,'YYYY-MM-DD HH24:MI') AS begin_time,
TO_CHAR(end_interval_time,'YYYY-MM-DD HH24:MI') AS end_time
FROM dba_hist_snapshot
WHERE dbid = (SELECT dbid FROM v$database)
ORDER BY snap_id DESC
FETCH FIRST 24 ROWS ONLY;
-- 3a) Interactive report (prompts for HTML/TEXT and snapshot range):
-- @?/rdbms/admin/awrrpt.sql (RAC: awrgrpt.sql, specific instance: awrrpti.sql)
-- 3b) TEXT report from a script:
SET LINESIZE 8000 PAGESIZE 0 TRIMSPOOL ON HEADING OFF FEEDBACK OFF
SPOOL /tmp/awr_<begin_snap>_<end_snap>.txt
SELECT output
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(
l_dbid => (SELECT dbid FROM v$database),
l_inst_num => (SELECT instance_number FROM v$instance),
l_bid => <begin_snap>,
l_eid => <end_snap>));
SPOOL OFF
-- For HTML: DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML (same parameters)作用
生成覆盖问题时间窗口的两个 AWR 快照之间的报告:负载概况、Top 等待事件、Top SQL 和实例统计信息。表函数可让你从脚本或调度作业中获取报告。
适用场景
分析特定时间窗口内的性能下降、负载测试或批处理前后对比,以及容量报告时。
注意
需要 Diagnostics Pack 许可(CONTROL_MANAGEMENT_PACK_ACCESS='DIAGNOSTIC' 或 'DIAGNOSTIC+TUNING');没有许可时,将该参数设为 'NONE' 并使用 Statspack。报告不能跨越实例重启。超过一小时的范围会被平均化并掩盖短时尖峰;请保持窗口紧凑。