oracle用dbms_workload_repository取AWR报告方法

来源:互联网 发布:举报淘宝盗图 编辑:程序博客网 时间:2024/05/21 10:35

我们可以使用awrrpt.sql脚本在服务器端生成AWR报告,这里我们说说如何使用DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML生成AWR报告,可以在服务器和客户端使用。

取AWR方法

1、根据取AWR报告的时间范围,查出快照ID;

SELECT *  FROM DBA_HIST_SNAPSHOT T WHERE T.END_INTERVAL_TIME >=       TO_DATE('2017-10-09 09:00:00', 'yyyy-MM-dd hh24:mi:ss')   AND T.END_INTERVAL_TIME <=       TO_DATE('2017-10-09 10:01:00', 'yyyy-MM-dd hh24:mi:ss') ORDER BY SNAP_ID;

查询结果如下:
这里写图片描述
从截图中可以看出oracle是15min生成一次快照

2、利用第一步的END_INTERVAL_TIME,SNAP_ID,DBID,INSTANCE_NUMBER生成报告

SELECT *  FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1700577032,                                                      1,                                                      38247,                                                      38251,                                                      0));或者:SELECT DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1700577032,                                                      1,                                                      38247,                                                      38251,                                                      0) FROM dual;    

3、把结果粘贴到一个txt中,比如a.txt保存退出。然后改此文件后缀为html,比如a.html. 最后用浏览器打开a.html即可 ,如果需要生成txt格式的报告,则用DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT这个函数即可
报告截图:
这里写图片描述

生成对比的AWR报告

1、同样的,根据取AWR报告的时间范围,查出快照ID
2、利用下面的函数取出报告,导出即可

SELECT DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML(1700577032,                                                     1,                                                     38247,                                                     38251,                                                     1700577032,                                                     1,                                                     38151,                                                     38155)  FROM DUAL;

报告截图:
这里写图片描述

相关函数

--生成html格式的awr报告FUNCTION AWR_REPORT_HTML(L_DBID IN NUMBER,      --database ID number                         L_INST_NUM IN NUMBER,  --instance number                         L_BID IN NUMBER,       --开始的快照ID,在dba_hist_snapshot里找                         L_EID IN NUMBER,       --结束的快照ID,在dba_hist_snapshot里找                         L_OPTIONS IN NUMBER DEFAULT 0) RETURN AWRRPT_HTML_TYPE_TABLE  PIPELINED;--生成txt格式的awr报告FUNCTION AWR_REPORT_TEXT(L_DBID IN NUMBER,      --database ID number                                                  L_INST_NUM IN NUMBER,  --instance number                                                               L_BID IN NUMBER,       --开始的快照ID,在dba_hist_snapshot里找                         L_EID IN NUMBER,       --结束的快照ID,在dba_hist_snapshot里找                         L_OPTIONS IN NUMBER DEFAULT 0) RETURN AWRRPT_TEXT_TYPE_TABLE  PIPELINED;--生成对比的awr报告FUNCTION AWR_DIFF_REPORT_HTML(DBID1     IN NUMBER,                              INST_NUM1 IN NUMBER,                              BID1      IN NUMBER,                              EID1      IN NUMBER,                              DBID2     IN NUMBER,                              INST_NUM2 IN NUMBER,                              BID2      IN NUMBER,                              EID2      IN NUMBER)  RETURN AWRRPT_HTML_TYPE_TABLE  PIPELINED;