統計収集しきい値を使用すると、不要な統計収集を最小化できます。システム設定のしきい値の場合、最適化ルーチンは再収集の必要性や外挿の妥当性を自動的に判断します。しきい値を使用した統計の収集および再収集は、テーブルに対して実行できます。
THRESHOLDオプションを使用すると、最後の統計収集以降のデータ変更の量または現在の統計の経過時間が適用しきい値を下回る場合に、統計の再収集を自動的にスキップすることができます。
最適化ルーチンは、以前に収集した統計、列の履歴、変更カウントなどの要素に基づいて、適切なしきい値を自動的に決定して適用します。または、COLLECT STATISTICSリクエストの一環として、変更のパーセンテージまたは日数(あるいはこの両方)を設定して、しきい値を明示的に指定することもできます。
統計収集リクエストは定期的に送信できます。最適化ルーチンは、保存されているしきい値と履歴データを使用して、指定の統計再収集が必要かどうかを判断します。最適化ルーチンでは、同じデータに基づいて、指定のしきい値を超える列に対して統計を再収集するタイミングを決定できます。例えば、しきい値を10%のデータ変更と決定した場合、統計再収集リクエストを送信したときに、最後の収集以降のデータ変更が10%未満であると、最適化ルーチンは統計を再収集しません。
初回の統計収集でTHRESHOLDオプションを指定した場合、最適化ルーチンは統計を収集し、そのTHRESHOLDオプションを保存します。このため、今後同じしきい値を指定する必要はありません。それ以降に再収集リクエストを送信した場合、最適化ルーチンは、保存されている収集しきい値に基づいて、現在の統計収集をスキップするかどうかを判断します。
統計再収集で新しいTHRESHOLDオプションを指定すると、現在の値(存在する場合)はオーバーライドされます。最適化ルーチンは、現在のリクエストに新しいTHRESHOLD値を適用し、今後も統計再収集に利用できるように、更新したTHRESHOLDオプションを保存します。
- 変更ベース
- 時間ベース
変更ベースのしきい値の場合、最適化ルーチンは、システムに保持されているUDI (更新、削除、挿入)カウント、ランダムAMPサンプル、および利用可能なテーブル履歴に基づいて、最後の統計収集以降のデータ変更の量を判断します。
1つのCOLLECT STATISTICSリクエストで変更ベースのしきい値と時間ベースのしきい値を組み合わせて指定することもできます。
SYSTEM THRESHOLDまたはSYSTEM THRESHOLD PERCENTを指定した場合、最適化ルーチンは、列履歴および内部の外挿手法を考慮して、適切な変更しきい値を決定します。最適化ルーチンが小さなテーブルのNUSIについて完全統計を再収集するときには、しきい値情報を無視して完全統計を収集します。これは、この場合には、完全統計を収集する方が、ごくわずかなコストでより正確な統計が得られるためです。
時間ベースのしきい値の場合、現在の統計の有効期限を指定して、それに基づいて統計の更新タイミングを決定します。