DBAtlas · データベース運用アトラス

統計を収集(DBMS_STATS)

Oracleメンテナンス

コマンド

-- 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);

概要

オプティマイザ用にテーブル/インデックスの統計を収集し、正しい実行計画が生成されるようにする。

使用する場面

大量のDML/ロード後、実行計画が劣化したとき、新しいインデックス/表の作成後。

注意

統計の変更は実行計画を変える可能性がある。重要なシステムでは事前にAWRでテスト/比較する。DEGREEの並列度はCPUを消費する。GATHER_DATABASE_STATSは業務ピーク時には負荷が高い。

DBAtlas で開く →

関連項目