题目部分
【DB笔试面试820】在Oracle中,如何获取AWR报告?
♣
答案部分
Oracle可以生成两种类型的AWR报告:文本格式和html格式。其中,html格式的报告界面更加友好。有针对整个数据库的AWR报告,有针对某个实例的AWR报告(在集群环境),也有针对单条SQL语句的AWR报告。可以通过运行Oracle自带的SQL脚本产生AWR报告,只是产生不同的AWR报告,需要运行不同的脚本。
l 产生整个数据库的AWR报告,运行脚本awrrpt.sql:
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
l 产生某个实例的AWR报告,运行脚本awrrpti.sql:
@$ORACLE_HOME/rdbms/admin/awrrpti.sql
l 产生针对不同时段性能的一个比对报告,运行脚本awrddrpt.sql:
@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
l 产生某条SQL语句的AWR报告,运行脚本awrsqrpt.sql:
@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
另外,在这里介绍一种作者常用的生成AWR报告的方法:
首先查询数据库所有的快照:
SELECT S.SNAP_ID,
TO_CHAR(S.BEGIN_INTERVAL_TIME, 'YYYY-MM-DD HH24:MI:SS') BEGIN_INTERVAL_TIME,
TO_CHAR(S.END_INTERVAL_TIME, 'YYYY-MM-DD HH24:MI:SS') END_INTERVAL_TIME,
S.DBID,
S.INSTANCE_NUMBER
FROM DBA_HIST_SNAPSHOT S
WHERE S.INSTANCE_NUMBER=1
ORDER BY S.SNAP_ID DESC;
例如,如果要生成203和204之间的快照,那么可以执行SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(3196811885,1,203,204));
将结果拷贝到文本文件里边,然后另存为html文件,这样就可以生成html报告了。
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗