Perf hit ratio system

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Domaine Performance
Voir aussi Perf hit ratio by session · Perf performance snapshot

Perf hit ratio system calcule le buffer cache hit ratio global de l'instance à partir des compteurs cumulés de v$sysstat (consistent gets, db block gets, physical reads). C'est la version agrégée de Perf hit ratio by session, à réserver à une vue d'ensemble rapide plutôt qu'à un diagnostic ciblé.

Script

SELECT
    TO_CHAR(SUM(DECODE(name, 'consistent gets', value, 0)),
            '999,999,999,999,999,999') consistent_gets
  , TO_CHAR(SUM(DECODE(name, 'db block gets', value, 0)),
            '999,999,999,999,999,999') db_block_gets
  , TO_CHAR(SUM(DECODE(name, 'physical reads', value, 0)),
            '999,999,999,999,999,999') physical_reads
  , ROUND(
        (   SUM(DECODE(name, 'consistent gets', value, 0))
          + SUM(DECODE(name, 'db block gets', value, 0))
          - SUM(DECODE(name, 'physical reads', value, 0))
        )
      / (   SUM(DECODE(name, 'consistent gets', value, 0))
          + SUM(DECODE(name, 'db block gets', value, 0))
        ) * 100, 2
    ) hit_ratio
FROM v$sysstat
/

Interprétation

  • Seuil historiquement cité : un hit ratio inférieur à 90 % est souvent interprété comme un signal de sous-dimensionnement du buffer cache (augmenter db_cache_size ou le paramètre équivalent de gestion automatique de la mémoire).
  • À nuancer fortement : le ratio est cumulé depuis le dernier démarrage de l'instance (aucune fenêtre glissante) et un ratio élevé peut masquer des full scans répétés sur de petites tables entièrement en cache. Sur les versions récentes, préférer une analyse par wait events/ADDM à ce seul indicateur — la fiabilité limitée du hit ratio comme métrique de tuning est bien documentée (« hit ratio fallacy »).
  • À interpréter en tendance (avant/après un changement de configuration) plutôt qu'en valeur absolue isolée.

Voir aussi