select snap_id, begin_interval_time,end_interval_time from dba_hist_snapshot;
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
How to find the best Interval to Generate your AWR Reports?
To Single Instance this can be done using bellow query:
SET LINESIZE 200
SET PAGESIZE 200
UNDEF num_days
COL startup_time FOR a30
COL db_name FOR a10
COL snap_start FOR 9999999
COL snap_end FOR 9999999
COL start_interval FOR a25
COL end_interval FOR a25
COL range_interval FOR a40
COL qtd_snaps FOR 999
SET PAGESIZE 200
UNDEF num_days
COL startup_time FOR a30
COL db_name FOR a10
COL snap_start FOR 9999999
COL snap_end FOR 9999999
COL start_interval FOR a25
COL end_interval FOR a25
COL range_interval FOR a40
COL qtd_snaps FOR 999
SELECT
s.startup_time,
di.instance_name,
MIN(snap_id) snap_start,
MAX(snap_id) snap_end,
MIN(end_interval_time) start_interval,
MAX(end_interval_time) end_interval,
EXTRACT(DAY FROM(MAX(end_interval_time) ) - MIN(end_interval_time) )
|| ' Days(s) '
|| EXTRACT(HOUR FROM(MAX(end_interval_time) ) - MIN(end_interval_time) )
|| ' Hour(s) '
|| EXTRACT(MINUTE FROM(MAX(end_interval_time) ) - MIN(end_interval_time) )
|| ' Minute(s) ' range_interval,
MAX(snap_id) - MIN(snap_id) qtd_snaps
FROM
dba_hist_snapshot s,
dba_hist_database_instance di
WHERE
di.dbid = s.dbid
AND di.instance_number = s.instance_number
AND end_interval_time > DECODE(&&num_days,0,TO_DATE('31-JAN-9999','DD-MON-YYYY'),3.14,s.end_interval_time,TO_DATE(SYSDATE,'dd/mm/yyyy'
) - (&num_days - 1) )
GROUP BY
s.startup_time,
di.instance_name
ORDER BY
startup_time ASC;
No comments:
Post a Comment