Perf db block buffer usage
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Voir aussi | Perf hit ratio system · Perf sga usage · Perf shared pool memory |
Perf db block buffer usage répartit les blocs du database buffer cache selon leur
état interne (libre, en cours de modification, non modifié depuis sa dernière lecture, en cours
de lecture) en interrogeant x$bh, la table fixe interne qui sous-tend le buffer
cache. Cette table fixe n'est accessible qu'à SYS — c'est la limite principale de
ce script.
Script
-- Répartition des blocs du buffer cache par état. À exécuter connecté en SYS
-- (x$bh est une table fixe interne, non accessible aux autres comptes).
SET LINESIZE 135
SET PAGESIZE 9999
SET VERIFY OFF
COLUMN block_status HEADING 'État du bloc'
COLUMN block_count HEADING 'Nombre'
SELECT
DECODE(state, 0, 'Libre',
1, DECODE(lrba_seq, 0, 'Disponible', 'En cours de modification'),
2, 'Non modifié',
3, 'En cours de lecture',
'Autre') block_status
, COUNT(*) block_count
FROM
sys.x$bh
GROUP BY
DECODE(state, 0, 'Libre',
1, DECODE(lrba_seq, 0, 'Disponible', 'En cours de modification'),
2, 'Non modifié',
3, 'En cours de lecture',
'Autre')
/
Pour un diagnostic équivalent sans se connecter en SYS, la vue publique
v$bh (colonne status : FREE, XCUR,
SCUR, CR, READ, MREC, IREC)
donne une information proche, bloc par bloc, sans dépendre d'une table x$ non
documentée.
Voir aussi
- Perf hit ratio system — taux de succès global du buffer cache
- Perf sga usage — occupation globale de la SGA (dont le buffer cache)
- Perf shared pool memory — pendant côté shared pool