DBAtlas · Atlas d'exploitation des bases de données

Collecter les statistiques (DBMS_STATS)

OracleMaintenance

Commande

-- Single table (including cascaded indexes):
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname => 'CUSTOMER_APP', tabname => 'CUSTOMER', cascade => TRUE, estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, degree => 4);

-- Whole schema:
EXEC DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'CUSTOMER_APP', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, cascade => TRUE, degree => 4);

-- Whole database (run only in a maintenance window / off-peak hours):
EXEC DBMS_STATS.GATHER_DATABASE_STATS(estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, degree => 4);

Ce que fait la commande

Collecte les statistiques de tables/index pour l'optimiseur ; garantit la production de plans d'exécution corrects.

Quand l'utiliser

Après des DML/chargements volumineux, en cas de régression de plan, après la création d'un index/d'une table.

Attention

Les changements de statistiques peuvent modifier les plans d'exécution ; sur les systèmes critiques, testez/comparez d'abord avec AWR. Le parallélisme DEGREE consomme du CPU. GATHER_DATABASE_STATS est lourd aux heures de forte activité.

Ouvrir dans DBAtlas →

Voir aussi