使用 DBA 账户登录数据库
disql SYSDBA/password
创建 DBMS_WORKLOAD_REPOSITORY 系统包,开启 AWR 快照功能。
SP_INIT_AWR_SYS(1);
启用状态检测。
SELECT SF_CHECK_AWR_SYS;
设置 AWR 快照间隔时间(30 分钟)
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(30);
手动创建快照:
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
这里我们可以间隔几分钟多执行几遍创建几个不同的快照。
查看创建的快照信息,包括快照 id:
SELECT * FROM SYS.WRM$_SNAPSHOT;
查看 AWR 报告内容
SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
查看 snapshot 的 id 在 1~2 范围内的 AWR 分析报告的带 html 格式的内容。
生成 HTML 文件(需要先对 awr 文件夹授权)
chmod 777 /awr
SYS.AWR_REPORT_HTML(1,2,'/awr','awr1.html');
通过 AWR 报告找出慢 SQL