COLLECT STATISTICS文を使用して、述部またはGROUP BY句で使用される列の統計を収集します。テーブルのサイズが10%以上増大した場合は、そのテーブルの統計を収集する必要があります。再収集は、最初に統計が収集されたすべての列を対象として実行されます。
タスク | 指針 |
---|---|
小さなテーブルでの統計収集 | テーブルから他の統計を収集しない場合、UPI統計を収集。テーブルは小さい(100行/AMP)。 |
NUPI統計の収集 | NUPIは、
|
すべてのNUSIに関するNUSI統計の収集 | 最適化ルーチンは、NUSIを範囲スキャン(BETWEEN ... AND)で使用できる。 統計が入手可能で、フル テーブル スキャンよりもデモグラフィックの方が低コストであることが明らかな場合、システムはこの範囲内の値をハッシュするかどうかを決定できる。 統計がないと、インデックスが使用されない可能性があり、場合により、効率的ではないときもNUSIが使用されることがある。 |
カバーリング(ALLオプション)NUSIに関するNUSI統計の収集 | 問合わせをカバーリングする目的でSIが定義されている(ALLオプション指定)場合は、インデックス付けされた列がWHERE条件で指定されていなくても、統計の収集について考慮する必要がある。 潜在的なカバーリングNUSIに関する統計を収集することにより、最適化ルーチンはNUSIサブテーブル内の行の合計数を把握できるため、カバーリングによるコスト節約に関する決定の質を高めることができる。 |
ORDER BYを指定したNUSIに関するNUSI統計の収集 | NUSI定義でORDER BYオプションによってソート キーが指定されている場合、その列に関する統計を収集して、最適化ルーチンがNUSIベースのアクセス パスを使用するコストをソート キー列の範囲または等号条件を使用して比較できるようにする。 |
非インデックス化列の統計を、テーブル選択を使用したすべての、非インデックス化列で収集する | 列のグループに関する統計を収集すれば、各列ごとの検索条件または結合条件を含んでいる問合わせに該当する行の数を最適化ルーチンが推定できる。 |
更新後の統計のリフレッシュ | 以下の場合に実行する。
|
統計の削除 | 統計を使用する問合わせがないため、統計が不要になった場合には、削除すべきです。 |