oracle小知識點5--通過dbms_workload_repository.awr_report_html產生awr報告

selectshen發表於2015-08-28
       生成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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章