Tuesday, 2 August 2016

How often are the archived logs generated?

SQL> set line 200 pages 80
SQL> alter session set nls_date_format='dd-mon-yy hh24:mi:ss';

Session altered.

Hourly report:


  select trunc(COMPLETION_TIME,'HH') Hour,thread# , count(*) Archives from v$archived_log
  where COMPLETION_TIME > sysdate-1
  group by trunc(COMPLETION_TIME,'HH'),thread#  order by 1;




HOUR                  THREAD#   ARCHIVES
------------------ ---------- ----------
07-mar-17 15:00:00          1          3
07-mar-17 16:00:00          1          6
07-mar-17 17:00:00          1          6
07-mar-17 18:00:00          1          9
07-mar-17 19:00:00          1         19
07-mar-17 20:00:00          1          5
07-mar-17 21:00:00          1         20
07-mar-17 22:00:00          1          8
07-mar-17 23:00:00          1          4
08-mar-17 00:00:00          1          4
08-mar-17 01:00:00          1         19
08-mar-17 02:00:00          1         15
08-mar-17 03:00:00          1         25
08-mar-17 04:00:00          1         10
08-mar-17 05:00:00          1          5
08-mar-17 06:00:00          1         12
08-mar-17 07:00:00          1          4
08-mar-17 08:00:00          1         16
08-mar-17 09:00:00          1          6
08-mar-17 10:00:00          1         20
08-mar-17 11:00:00          1          6
08-mar-17 12:00:00          1          6
08-mar-17 13:00:00          1         19
08-mar-17 14:00:00          1          7
08-mar-17 15:00:00          1          3

25 rows selected.

Daily report:

 select trunc(COMPLETION_TIME,'DD') Day,thread# , count(*) Archives from v$archived_log
  where COMPLETION_TIME > sysdate-10
  group by trunc(COMPLETION_TIME,'DD'),thread#  order by 1
/


 Another question would be, how many archived logs per day are generated, on average?

On average we generate 77 logs/day.

SQL> l
  select avg(count(*)) Archives from v$archived_log
  where COMPLETION_TIME > sysdate-100
  group by trunc(COMPLETION_TIME,'DD')
SQL> /

  ARCHIVES
----------
77.0566038



Update:
Querying v$log_history produces a nice table:

http://ajwatblog.blogspot.com/2011/04/redo-logs-switching-frequency.html


In case the archivelog mode is OFF:

select count(*),trunc(FIRST_TIME,'hh')
from v$log_history
group by trunc(FIRST_TIME,'hh')
order by 2

/


1 comment:

  1. In case we want to see how often we switch redo logs (maybe in case we are not in ARCHIVELOG mode), the below query could be used:

    SQL> select trunc(FIRST_TIME,'HH') Hour,count(*) from v$log_history
    2 where FIRST_TIME > sysdate-2
    3 group by trunc(FIRST_TIME,'HH') order by 1;

    HOUR COUNT(*)
    ------------------ ----------
    06-mar-18 11:00:00 1
    06-mar-18 12:00:00 20
    06-mar-18 15:00:00 1
    06-mar-18 16:00:00 3
    06-mar-18 20:00:00 8
    06-mar-18 21:00:00 1
    06-mar-18 22:00:00 1
    06-mar-18 23:00:00 2
    07-mar-18 00:00:00 1
    07-mar-18 08:00:00 6
    07-mar-18 09:00:00 4
    07-mar-18 10:00:00 9
    07-mar-18 11:00:00 4

    ReplyDelete