データベース保守の実行
最高のパフォーマンスのために、RUNSTATS などのコマンドを実行して、大きな表で周期的に保守アクティビティーを行います。
DB2® RUNSTATS コマンドは、システム・カタログ内にある、表やそれに関連した索引の特性または統計ビューの特性に関する統計情報を更新します。DB2® RUNSTATS コマンドを使用して、表および索引に関する現在の統計を収集することを、強くお勧めします。最後に RUNSTATS コマンドを実行してから、大きな更新アクティビティーが発生した場合や新しい索引が作成されている場合は特にその必要があります。このコマンドにより、オプティマイザーは最も正確な情報に基づいて、最も効果的なアクセス・プランを決定できます。
:
runstats on table DB2INST2.UA_CONTACTHISTORY and detailed indexes all
含まれるデータの量にどの時点でも大きな違いが生じ得る表の事例を考慮します。 この種の表には揮発性、または極端な変更の可能性があるため、RUNSTATS が収集する統計の信頼性が不確かなものになります。統計はある 1 つの時点で収集され、その時点を反映するものにすぎません。
VOLATILE 表を使用するアクセス・プランを生成しても、そのプランが不正確であったり、あまり効果のないものになる可能性があります。例えば、VOLATILE 表が空のときに統計を収集すると、オプティマイザーの傾向として、索引スキャンではなく表スキャンを使って VOLATILE 表にアクセスするほうが優先されます。
この種の問題を回避するには、ALTER TABLE ステートメントを使って、表を揮発性として宣言することを考慮してください。 表を揮発性として宣言すれば、オプティマイザーは表スキャンではなく索引スキャンの使用を考慮します。 宣言された VOLATILE 表を使用するアクセス・プランは、その表の既存統計には依存しません。
"ALTER TABLE <table_name> VOLATILE CARDINALITY"