Dba index stats
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Domaine | Administration (index) |
| Voir aussi | Dba index fragmentation · Dba index schema fragmentation report |
Dba index stats affiche l'ensemble des statistiques structurelles d'un index (issues de ANALYZE INDEX VALIDATE STRUCTURE / vue INDEX_STATS), sous une forme lisible en colonne plutôt qu'en une seule ligne large.
Le script utilise l'attribut COLUMN ... NEWLINE : chaque pseudo-colonne (construite en concaténant un libellé texte et la valeur formatée) est forcée sur sa propre ligne, ce qui donne un rendu "fiche" plutôt qu'un tableau classique.
Script
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET LINESIZE 180
SET PAGESIZE 50000
SET VERIFY OFF
ACCEPT index_name CHAR PROMPT 'Enter index name [SCHEMA].index_name : '
COLUMN name NEWLINE
COLUMN headsep NEWLINE
COLUMN height NEWLINE
COLUMN blocks NEWLINE
COLUMN del_lf_rows NEWLINE
COLUMN del_lf_rows_len NEWLINE
COLUMN distinct_keys NEWLINE
COLUMN most_repeated_key NEWLINE
COLUMN btree_space NEWLINE
COLUMN used_space NEWLINE
COLUMN pct_used NEWLINE
COLUMN rows_per_key NEWLINE
COLUMN blks_gets_per_access NEWLINE
COLUMN br_rows NEWLINE
COLUMN br_blks NEWLINE
COLUMN br_rows_len NEWLINE
COLUMN br_blk_len NEWLINE
ANALYZE INDEX &&index_name VALIDATE STRUCTURE;
SELECT
name
, '----------------------------------------------------------------------------' headsep
, 'height ' || TO_CHAR(height, '999,999,990') height
, 'blocks ' || TO_CHAR(blocks, '999,999,990') blocks
, 'del_lf_rows ' || TO_CHAR(del_lf_rows, '999,999,990') del_lf_rows
, 'del_lf_rows_len ' || TO_CHAR(del_lf_rows_len, '999,999,990') del_lf_rows_len
, 'distinct_keys ' || TO_CHAR(distinct_keys, '999,999,990') distinct_keys
, 'most_repeated_key ' || TO_CHAR(most_repeated_key, '999,999,990') most_repeated_key
, 'btree_space ' || TO_CHAR(btree_space, '999,999,990') btree_space
, 'used_space ' || TO_CHAR(used_space, '999,999,990') used_space
, 'pct_used ' || TO_CHAR(pct_used, '990') pct_used
, 'rows_per_key ' || TO_CHAR(rows_per_key, '999,999,990') rows_per_key
, 'blks_gets_per_access ' || TO_CHAR(blks_gets_per_access, '999,999,990') blks_gets_per_access
, 'lf_rows ' || TO_CHAR(lf_rows, '999,999,990') || ' ' ||
'br_rows ' || TO_CHAR(br_rows, '999,999,990') br_rows
, 'lf_blks ' || TO_CHAR(lf_blks, '999,999,990') || ' ' ||
'br_blks ' || TO_CHAR(br_blks, '999,999,990') br_blks
, 'lf_rows_len ' || TO_CHAR(lf_rows_len, '999,999,990') || ' ' ||
'br_rows_len ' || TO_CHAR(br_rows_len, '999,999,990') br_rows_len
, 'lf_blk_len ' || TO_CHAR(lf_blk_len, '999,999,990') || ' ' ||
'br_blk_len ' || TO_CHAR(br_blk_len, '999,999,990') br_blk_len
FROM index_stats
/
UNDEFINE index_name
SET FEEDBACK 6
SET HEADING ON
Colonnes / sortie
- height — profondeur de l'arbre B-tree (nombre de niveaux, en comptant à partir de 1).
- blocks — blocs alloués au segment d'index.
- lf_rows / lf_blks — nombre de lignes / blocs "feuilles" (leaf, le niveau contenant les entrées d'index).
- br_rows / br_blks — nombre de lignes / blocs "branches" (branch, les niveaux intermédiaires de navigation).
- del_lf_rows — entrées feuilles marquées supprimées (voir Dba index fragmentation pour le taux qui en découle).
- distinct_keys — nombre de valeurs de clé distinctes.
- btree_space / used_space / pct_used — espace total alloué à l'arbre, espace réellement utilisé, et taux de remplissage.
- rows_per_key — cardinalité moyenne (nombre de lignes table par valeur de clé).
- blks_gets_per_access — nombre moyen de lectures de blocs par accès à l'index (indicateur d'efficacité du parcours).
Cette page complète Dba index fragmentation : là où ce dernier ne calcule que le taux de fragmentation, ce script restitue toutes les statistiques structurelles utiles pour un diagnostic plus poussé (profondeur excessive, mauvais taux de remplissage, etc.).
Voir aussi
- Dba index fragmentation — calcul ciblé du taux de fragmentation
- Dba index schema fragmentation report — même diagnostic, automatisé sur tout un schéma