有个模块一直查询很慢,于是就通过awr快速分析这个模块的sql语句。过程如下:
1 先做一次快照
用包 161 DBMS_WORKLOAD_REPOSITORY
创建快照
EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
2 查快照的信息DBA_HIST_SNAPSHOT
SQL> select SNAP_ID ,SNAP_LEVEL
from DBA_HIST_SNAPSHOT;
SNAP_ID SNAP_LEVEL
---------- ----------
1 1
3 1
4 1
5 1
6 1
2 1
7 1
3 执行耗费性能的SQL语句 这里的操作就是在该模块点击查询
4 再执行一次快照
EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
5 查询快照
SQL> select SNAP_ID ,SNAP_LEVEL
from DBA_HIST_SNAPSHOT;
SNAP_ID SNAP_LEVEL
---------- ----------
1 1
3 1
4 1
5 1
6 1
2 1
7 1
8 1
分析78之间就查出该时间段内最耗费性能的SQL语句生成报告
6 用脚本awrrpt.sql生成报告
cd $ORACLE_HOME/rdbms/admin
ls awr*
awrblmig.sql awrextr.sql awrginp.sql awrinpnm.sql awrrpt.sql
awrddinp.sql awrgdinp.sql awrgrpti.sql awrinput.sql awrsqrpi.sql
awrddrpi.sql awrgdrpi.sql awrgrpt.sql awrload.sql awrsqrpt.sql
awrddrpt.sql awrgdrpt.sql awrinfo.sql awrrpti.sql
@?/rdbms/admin/awrrpt.sql