ITPub博客

首页 > 数据库 > Oracle > oracle小知识点5--通过dbms_workload_repository.awr_report_html产生awr报告

oracle小知识点5--通过dbms_workload_repository.awr_report_html产生awr报告

原创 Oracle 作者:selectshen 时间:2015-08-28 13:07:14 1 删除 编辑
       生成awr报告的方法有很多,常用有通过em,toad,awrrpt.sql.通过em,比较方便,鼠标点点就行了,但需在服务端开启em.通过toad,比较方便,但有些人不习惯使用toad.通过awrrpt.sql,需要手动执行,
而且生成的报告放在服务端.其实比较方便又简单的方法是使用dbms_workload_repository包的awr_report_html函数.
以下一个单实例生成awr报告的示例:
declare
v_begin_date date;
v_end_date date;
v_dbid number;
v_instance_number number;
v_min_snap_id number;
v_max_snap_id number;
begin
--设置要生成的报告的开始时间和结束时间
v_begin_date:=to_date('20150828 0530','yyyymmdd hh24mi');
v_end_date:=to_date('20150828 1130','yyyymmdd hh24mi');
--根据时间找到snap_id
select dbid,instance_number,min(snap_id),max(snap_id) into v_dbid,v_instance_number,v_min_snap_id,v_max_snap_id from dba_hist_snapshot
where end_interval_time>v_begin_date and end_interval_time<v_end_date
group by dbid,instance_number;
--加大dbms_output的buffer防止overflow
dbms_output.enable(500000);
--输出html文本
for i in (select output from table(dbms_workload_repository.awr_report_html(v_dbid, v_instance_number,v_min_snap_id,v_max_snap_id)))
  loop
    dbms_output.put_line(i.output);
    end loop;
end;

这里是用pl/sql develper执行的,所以把输出的结果复制到一个文本文件,改为html扩展名既可.如果用sqlplus可以直接通过spool把结果输出到一个html文件.

备注:

dbms_workload_repository包不仅可以生成awr报告,还可以创建删除快照,修改快照设置,创建删除基线,生成ash报告等.
其它工具也是通过对这个包的调用来实现相关awr操作.





来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28539951/viewspace-1784900/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-05

  • 博文量
    169
  • 访问量
    1460381