La requête suivante permet de cartographier heure par heure les switches de redolog. Cette information permet de connaitre les pics de forte activité transactionnelle de la base.
set linesize 150; select to_char(first_time,'YYYY-MM-DD') Jour, to_char(sum(decode(to_char(first_time,'HH24'),'00',1,0)),'999') " 00", to_char(sum(decode(to_char(first_time,'HH24'),'01',1,0)),'999') " 01", to_char(sum(decode(to_char(first_time,'HH24'),'02',1,0)),'999') " 02", to_char(sum(decode(to_char(first_time,'HH24'),'03',1,0)),'999') " 03", to_char(sum(decode(to_char(first_time,'HH24'),'04',1,0)),'999') " 04", to_char(sum(decode(to_char(first_time,'HH24'),'05',1,0)),'999') " 05", to_char(sum(decode(to_char(first_time,'HH24'),'06',1,0)),'999') " 06", to_char(sum(decode(to_char(first_time,'HH24'),'07',1,0)),'999') " 07", to_char(sum(decode(to_char(first_time,'HH24'),'08',1,0)),'999') " 08", to_char(sum(decode(to_char(first_time,'HH24'),'09',1,0)),'999') " 09", to_char(sum(decode(to_char(first_time,'HH24'),'10',1,0)),'999') " 10", to_char(sum(decode(to_char(first_time,'HH24'),'11',1,0)),'999') " 11", to_char(sum(decode(to_char(first_time,'HH24'),'12',1,0)),'999') " 12", to_char(sum(decode(to_char(first_time,'HH24'),'13',1,0)),'999') " 13", to_char(sum(decode(to_char(first_time,'HH24'),'14',1,0)),'999') " 14", to_char(sum(decode(to_char(first_time,'HH24'),'15',1,0)),'999') " 15", to_char(sum(decode(to_char(first_time,'HH24'),'16',1,0)),'999') " 16", to_char(sum(decode(to_char(first_time,'HH24'),'17',1,0)),'999') " 17", to_char(sum(decode(to_char(first_time,'HH24'),'18',1,0)),'999') " 18", to_char(sum(decode(to_char(first_time,'HH24'),'19',1,0)),'999') " 19", to_char(sum(decode(to_char(first_time,'HH24'),'20',1,0)),'999') " 20", to_char(sum(decode(to_char(first_time,'HH24'),'21',1,0)),'999') " 21", to_char(sum(decode(to_char(first_time,'HH24'),'22',1,0)),'999') " 22", to_char(sum(decode(to_char(first_time,'HH24'),'23',1,0)),'999') " 23" from v$log_history group by to_char(first_time,'YYYY-MM-DD') order by 1;
L'image ci-dessous présente le résultat. L'exemple présente une base de type datawarehouse, montrant les périodes de chargement de nouvelles données. Le nombre très élevés de switches certaines heures montre une taille trop faible des fichiers de redolog. Il importe toutefois de vérifier si les alertes comporte de erreur type 'Checkpoint not complete'.
La requête suivante donne un résultat permettant d'estimer la volumétrie journalière, utile pour calculer la taille disque supplémentaire pour passer une base en mode archivelog.
select A.*, round(A.Count#*B.Moy#/1024/1024) Moy_Jour_Mo from ( select to_char(First_Time,'YYYY-MM-DD') JOUR, count(1) Count#, Min(RECID) Min#, Max(RECID) Max# from v$log_history group by to_char(First_Time,'YYYY-MM-DD') order by 1 desc ) A, ( select avg(BYTES) Moy#, count(1) Count#, max(BYTES) Max_Bytes, min(BYTES) Min_Bytes from v$log ) B;
L'image ci-dessous présente le résultat, les tailles sont en Go.
Cette base peut donc générer près de 240Go d'archivelog par jour.