10gがもたらす福音(14)〜自動オプティマイザ統計収集。
10gではデフォルト、コストベース。ルールベースは今後サポートされなくなる(はず)。
表の監視
STATISTICS_LEVEL=TYPICALまたはALLの場合有効。
監視は、DBの停止時や15分に1度行われている。
監視結果は、DBMA_TAB_MODIFICATIONSビューを確認すること。
(9iで使用していていた ALTER TABLE…MONITORINGは不要になった)
GATHER_STATS_JOB
DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROCプロシージャを実行する。
- 失効した統計情報の収集
- 欠落した統計情報の収集
以下のウィンドウを使用する。
WEEKNIGHT_WINDOW
月曜から金曜日まで、毎日。午後10時から午前6時の間。
WEEKEND_WINDOW
土曜の午前12時から月曜の午前12時。
動的サンプリング
コスト計算のための情報を収集する。
例えば、表を作成した直後は、統計情報が存在しないが、この機能によって
それをカバーする。タイミングは、統計が欠落・失効している状態で
アクセスした時である。OPTIMIZER_DYNAMIC_SAMPLINGパラメータを使用する。
OPTIMIZER_DYNAMIC_SAMPLING
=0
サンプリングしない。
=1
ある条件にあてはまるもののみサンプリングする。
(索引がない表、分析がまだされていない表)
=2
デフォルト。全ての分析されていない表をサンプリングする。