GAGA LIFE.

DBAブログ -APとロジックとAKがある-

Oracle 統計情報の種類

Oracleの統計情報について簡単にまとめます。

種類 概要 未取得時の影響 取得方法
オブジェクト統計 表統計 表に対する統計
・表(パーティション)の行数
・表内に格納されたHWM以下に存在するデータブロック数
・表内の行の長さの平均
・行連鎖/行移行が発生している行数 など
非効率な実行計画が生成される可能性がある DBMS_STATS.GATHER_TABLE_STATS
索引統計 索引に対する統計
・ルート・ブロックからリーフ・ブロックまでの索引の高さ
・索引に含まれるリーフ・ブロックの数
・クラスタ化係数
・索引キー値の種類の数 など
同上 DBMS_STATS.GATHER_INDEX_STATS
列統計 列に対する統計
・列内に含まれる値の種類
・値がNULLの行数
・列の最小値/最大値
・列内に格納されたデータの分布度 など
同上

DBMS_STATS.GATHER_TABLE_STATS

※method_opt引数で制御

システム統計 システムのI/O性能やCPU速度の統計情報
NOWORKLOAD統計/WORKLOAD統計がある
サーバーのリソース状況に合った実行計画が
生成されない可能性がある
DBMS_STATS.GATHER_SYSTEM_STATS();
ディクショナリ統計 データディクショナリの統計情報 ・再帰的SQLやユーザSQLのハードパース時に
長時間化する可能性がある
・バックグラウンドプロセスの内部SQL/EM/AWRなどが
発行するSQLで不適切な実行計画が選択される
可能性がある
DBMS_STATS.GATHER_DICTIONARY_STATS();
固定オブジェクト統計 V$ビューなどの動的パフォーマンスビューのもととなるX$表などの
固定オブジェクトの統計情報
同上 DBMS_STATS.GATHER_FIXED_OBJECTS_STATS();

参考資料

マスターノート: オプティマイザ統計 (Doc ID 2381693.1)
統計情報取得の際のガイドライン(KROWN:56357) (Doc ID 1719715.1)
FAQ: 統計収集についてのよくある質問 (Doc ID 2382748.1)
マスターノート: オプティマイザ統計 (Doc ID 2381693.1)
実際のシステム統計情報の使用(収集された CPU および IO 情報) (Doc ID 2396976.1)
CBO が使用するシステム統計の収集および表示方法について (Doc ID 2056471.1)
システム統計:システム統計を収集してCBOオプティマイザを改善する (Doc ID 2275781.1)
システム統計:システム統計を収集してCBOオプティマイザを改善する (Doc ID 2275781.1)
マスターノート: オプティマイザ統計 (Doc ID 2381693.1)
マスターノート: オプティマイザ統計 (Doc ID 2381693.1)