Dba index stats

De wiki.nexiat.fr
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