Oracle AWR - 使用SQL获取AWR报告

Oracle AWR - 使用SQL获取AWR报告

Email:liqiang3@sugon.com

目录

Oracle AWR - 使用SQL获取AWR报告

1 DBMS_WORKLOAD_REPOSITORY包

2 AWR_REPORT_HTML:获取html格式的AWR报告

3 AWR_REPORT_TEXT:获取txt格式的AWR报告

4 补充一:只生成指定SQL的AWR报告

5 补充二:客户端获取statspack报告


1 DBMS_WORKLOAD_REPOSITORY包

我们经常使用awrrpt.sql脚本在服务器端生成AWR report。

除此之外我们还可以使用,DBMS_WORKLOAD_REPOSITORY包下的AWR_REPORT_HTML和AWR_REPORT_TEXT存储过程,从任意Oracle数据库终端(服务器和客户端均可),查询得到AWR报告源码,格式分别为html和txt文本。将查询结果保存便可获得AWR报告。

  • dbms_workload_repository.awr_report_html存储过程:
dbms_workload_repository.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)
  • dbms_workload_repository.awr_report_text存储过程:
dbms_workload_repository.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)

2 AWR_REPORT_HTML:获取html格式的AWR报告

第一步:确定开始和结束快照ID

根据需要,找到性能异常时段,开始和结束时间对应的SNAP_ID,如2859到2860。此外还需记录DBID和INSTANCE_NUMBER,以作为存储过程的参数。

第二步:查询获取报告源码

SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_html(1897011967,1,2859,2860,0));

第三步:将查询结果保存为html文件

创建一个文本文件,插入查询结果,文件名后缀使用html。

将*.html文件打开,即可看到所需的AWR报告。

 

3 AWR_REPORT_TEXT:获取txt格式的AWR报告

AWR_REPORT_TEXT的功能和使用方法类似,不过生成的是txt格式的报告。

第一步:确定开始和结束快照ID

SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_html(1897011967,1,2859,2860,0));

第二步:查询获取报告源码

SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_text(1897011967,1,2859,2860,0));

第三步:将查询结果保存为txt文件

 

4 补充一:只生成指定SQL的AWR报告

我们可以指定SQL_ID,生成该SQL特定的html报告或txt报告。

  FUNCTION awr_sql_report_text
  (l_dbid     IN NUMBER,  
   l_inst_num IN NUMBER,
   l_bid      IN NUMBER,     -- Begin Snap Id
   l_eid      IN NUMBER,     -- End Snapshot Id
   l_sqlid    IN VARCHAR2,   -- SQL ID
   l_options  IN NUMBER DEFAULT 0)
  RETURN awrsqrpt_text_type_table PIPELINED;
 
  FUNCTION awr_sql_report_html
  (l_dbid     IN NUMBER,
   l_inst_num IN NUMBER,
   l_bid      IN NUMBER,
   l_eid      IN NUMBER,
   l_sqlid    IN VARCHAR2,
   l_options  IN NUMBER DEFAULT 0)
  RETURN awrrpt_html_type_table PIPELINED;

5 补充二:客户端获取statspack报告

将数据库服务器上,${ORACLE_HOME}\rdbms\admin 下statspack相关的sp*.sql文件拷贝到客户端,在客户端调用spreport.sql,即可在客户端获取数据库statspack报告。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值