Find Total Version Count for Every one hour from AWR table

Script:

set serveroutput on
set lines 130
set verify off
accept v_begin_time prompt ‘Enter BEGIN_TIME DD-MON-YY HH24:MI:SS->’
accept v_end_time prompt ‘Enter END_TIME DD-MON-YY HH24:MI:SS->’
DECLARE
   lv_v_version_count   dba_hist_sqlstat.version_count%TYPE;
   lv_n_cnt         NUMBER                            := 0;

BEGIN
   FOR c1 IN
      (SELECT TO_CHAR (begin_interval_time, ‘DD/MON/YY:HH24’) sun,TO_CHAR (begin_interval_time + (1/24), ‘DD/MON/YY:HH24’)  sun1
         FROM dba_hist_snapshot
        WHERE begin_interval_time BETWEEN   TO_DATE (‘&v_begin_time’,
                                                     ‘DD-MON-YYYY HH24:MI’
                                                    )
                                          – 1 / 24
                                      AND TO_DATE (‘&v_end_time’,
                                                   ‘DD-MON-YYYY HH24:MI’
                                                  )order by 1)
   LOOP
      BEGIN
      –dbms_output.put_line (c1.sun);
         select sum(sum(version_count))
         into lv_v_version_count
         from dba_hist_sqlstat a, dba_hist_snapshot b, dba_hist_sqltext c
         where a.SNAP_ID = b.SNAP_ID
         and a.sql_id = c.sql_id
         and BEGIN_INTERVAL_TIME >= to_date(c1.sun, ‘DD-MON-YY:HH24:MI’)
         and BEGIN_INTERVAL_TIME <= to_date(c1.sun1, ‘DD-MON-YY:HH24:MI’)
         group by a.version_count;
         lv_n_cnt := lv_n_cnt + 1;
         DBMS_OUTPUT.put_line (c1.sun ||’    ‘||lv_v_version_count);
      EXCEPTION
         WHEN NO_DATA_FOUND
         THEN
            DBMS_OUTPUT.put_line (‘No Data Found’);
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (‘When Others Error’);
      END;
   END LOOP;
END;
/


Sample Output :

Date        Version_Count
07/FEB/13:07    5342
07/FEB/13:08    6575
07/FEB/13:09    6675
07/FEB/13:10    9361
07/FEB/13:11    8042
07/FEB/13:12    8224
Recent Posts