Perf log switch history count daily 7

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Domaine Performance
Voir aussi Perf log switch history count daily · Perf log switch history count daily all

Perf log switch history count daily 7 est la variante Oracle 7 de Perf log switch history count daily : même principe (nombre de changements de fichier de redo log par heure et par jour, sur une plage de dates saisie), mais interrogeant la colonne v$log_history.time — nom de colonne propre à Oracle 7, remplacé par first_time à partir d'Oracle 8 (utilisé par les autres scripts de la famille). Ce script n'a d'intérêt que pour une instance Oracle 7 encore en exploitation ; sur toute version ultérieure, utiliser Perf log switch history count daily.

Script

SET LINESIZE 145
SET PAGESIZE 9999
SET VERIFY   OFF

ACCEPT startDate PROMPT 'Date de début (DD-MON-YYYY) : '
ACCEPT endDate   PROMPT 'Date de fin   (DD-MON-YYYY) : '

COLUMN H00   FORMAT 999     HEADING '00'
COLUMN H01   FORMAT 999     HEADING '01'
COLUMN H02   FORMAT 999     HEADING '02'
COLUMN H03   FORMAT 999     HEADING '03'
COLUMN H04   FORMAT 999     HEADING '04'
COLUMN H05   FORMAT 999     HEADING '05'
COLUMN H06   FORMAT 999     HEADING '06'
COLUMN H07   FORMAT 999     HEADING '07'
COLUMN H08   FORMAT 999     HEADING '08'
COLUMN H09   FORMAT 999     HEADING '09'
COLUMN H10   FORMAT 999     HEADING '10'
COLUMN H11   FORMAT 999     HEADING '11'
COLUMN H12   FORMAT 999     HEADING '12'
COLUMN H13   FORMAT 999     HEADING '13'
COLUMN H14   FORMAT 999     HEADING '14'
COLUMN H15   FORMAT 999     HEADING '15'
COLUMN H16   FORMAT 999     HEADING '16'
COLUMN H17   FORMAT 999     HEADING '17'
COLUMN H18   FORMAT 999     HEADING '18'
COLUMN H19   FORMAT 999     HEADING '19'
COLUMN H20   FORMAT 999     HEADING '20'
COLUMN H21   FORMAT 999     HEADING '21'
COLUMN H22   FORMAT 999     HEADING '22'
COLUMN H23   FORMAT 999     HEADING '23'
COLUMN TOTAL FORMAT 999,999 HEADING 'Total'

SELECT
    SUBSTR(time, 1, 5)                        DAY
  , SUM(DECODE(SUBSTR(time, 10, 2), '00', 1, 0)) H00
  , SUM(DECODE(SUBSTR(time, 10, 2), '01', 1, 0)) H01
  , SUM(DECODE(SUBSTR(time, 10, 2), '02', 1, 0)) H02
  , SUM(DECODE(SUBSTR(time, 10, 2), '03', 1, 0)) H03
  , SUM(DECODE(SUBSTR(time, 10, 2), '04', 1, 0)) H04
  , SUM(DECODE(SUBSTR(time, 10, 2), '05', 1, 0)) H05
  , SUM(DECODE(SUBSTR(time, 10, 2), '06', 1, 0)) H06
  , SUM(DECODE(SUBSTR(time, 10, 2), '07', 1, 0)) H07
  , SUM(DECODE(SUBSTR(time, 10, 2), '08', 1, 0)) H08
  , SUM(DECODE(SUBSTR(time, 10, 2), '09', 1, 0)) H09
  , SUM(DECODE(SUBSTR(time, 10, 2), '10', 1, 0)) H10
  , SUM(DECODE(SUBSTR(time, 10, 2), '11', 1, 0)) H11
  , SUM(DECODE(SUBSTR(time, 10, 2), '12', 1, 0)) H12
  , SUM(DECODE(SUBSTR(time, 10, 2), '13', 1, 0)) H13
  , SUM(DECODE(SUBSTR(time, 10, 2), '14', 1, 0)) H14
  , SUM(DECODE(SUBSTR(time, 10, 2), '15', 1, 0)) H15
  , SUM(DECODE(SUBSTR(time, 10, 2), '16', 1, 0)) H16
  , SUM(DECODE(SUBSTR(time, 10, 2), '17', 1, 0)) H17
  , SUM(DECODE(SUBSTR(time, 10, 2), '18', 1, 0)) H18
  , SUM(DECODE(SUBSTR(time, 10, 2), '19', 1, 0)) H19
  , SUM(DECODE(SUBSTR(time, 10, 2), '20', 1, 0)) H20
  , SUM(DECODE(SUBSTR(time, 10, 2), '21', 1, 0)) H21
  , SUM(DECODE(SUBSTR(time, 10, 2), '22', 1, 0)) H22
  , SUM(DECODE(SUBSTR(time, 10, 2), '23', 1, 0)) H23
  , COUNT(*)                                    TOTAL
FROM
    v$log_history a
WHERE
    TO_DATE(SUBSTR(time, 1, 8), 'MM/DD/RR') >= TO_DATE('&startDate', 'DD-MON-YYYY')
  AND TO_DATE(SUBSTR(time, 1, 8), 'MM/DD/RR') <= TO_DATE('&endDate', 'DD-MON-YYYY')
GROUP BY SUBSTR(time, 1, 5)
ORDER BY SUBSTR(time, 1, 5)
/

Un ORDER BY a été ajouté par rapport au script d'origine, qui ne triait pas les lignes en sortie (contrairement à ses variantes Oracle 8+).

Interprétation

  • Même grille de lecture que Perf log switch history count daily : un rythme de switches très soutenu trahit des groupes de redo logs sous-dimensionnés.
  • Ce script cible spécifiquement des environnements Oracle 7, aujourd'hui hors support depuis longtemps ; à ne conserver que pour la valeur historique/documentaire ou un contexte de migration d'un très vieux système.

Voir aussi