Generating AWR Reports - Helper Script
Submitted by dave on Wed, 07/17/2013 - 14:57
REM David Mann - http://ba6.us - @ba6dotus REM AWR for Single Instance COLUMN DBID FORMAT 9999999999 COLUMN INS FORMAT 9999 COLUMN SNAP_ID FORMAT 999999 COLUMN BEGIN_INTERVAL_TIME FORMAT A16 COLUMN END_INTERVAL_TIME FORMAT A16 COLUMN MINUTES FORMAT 999 SELECT DBID, INSTANCE_NUMBER AS INS, SNAP_ID, EXTRACT(day from 24*60*(END_INTERVAL_TIME-BEGIN_INTERVAL_TIME)) AS MINUTES, TO_CHAR(END_INTERVAL_TIME,'YYYY-MM-DD HH24:MI') AS END_INTERVAL_TIME FROM DBA_HIST_SNAPSHOT ORDER BY BEGIN_INTERVAL_TIME; undefine DBID undefine INSID undefine STARTSNAPID undefine ENDSNAPID ACCEPT STARTSNAPID PROMPT "Enter begin Snap ID : " ACCEPT ENDSNAPID PROMPT "Enter begin Snap ID : " COL dat1 NEW_VALUE DBID SELECT DBID as dat1 FROM DBA_HIST_SNAPSHOT WHERE SNAP_ID=&STARTSNAPID; COL dat2 NEW_VALUE INSID SELECT INSTANCE_NUMBER as dat2 FROM DBA_HIST_SNAPSHOT WHERE SNAP_ID=&STARTSNAPID; --SELECT TO_CHAR(DBID)||'|'||TO_CHAR(INSTANCE_NUMBER)||'|'||TO_CHAR(SNAP_ID)||'|'||TO_CHAR(END_INTERVAL_TIME,'YYYY-MM-DD HH24:MI') AS "DBID|INST_NUM|SNAP_ID|END_TIME" --FROM dba_hist_snapshot order by BEGIN_INTERVAL_TIME; column report_name new_value report_name; select 'awr_'||(select NAME from v$database where DBID = &&DBID)||'_'||&&INSID||'_'|| (select to_char(END_INTERVAL_TIME,'yyyymmdd.hh24mi') from dba_hist_snapshot where SNAP_ID=&&STARTSNAPID)||'_'|| (select to_char(END_INTERVAL_TIME,'yyyymmdd.hh24mi') from dba_hist_snapshot where SNAP_ID=&&ENDSNAPID) ||'.html' report_name from dual; SET FEEDBACK OFF SET HEADING OFF SET LINESIZE 32000 SET LONG 32000 SET LONGCHUNKSIZE 32000 SET PAGESIZE 0 SET SPACE 0 SET TERMOUT OFF SET TRIMSPOOL ON SET VERIFY OFF SET SERVEROUTPUT ON exec DBMS_OUTPUT.ENABLE(5000000); spool &&report_name select output from table(sys.dbms_workload_repository.awr_report_html(&DBID,&INSID,&STARTSNAPID,&ENDSNAPID)); spool off set termout on