動的ステートメント・キャッシュ内のステートメントの無効化

変更の開始ステートメント内で参照されるオブジェクトの統計を収集するときに、動的ステートメント・キャッシュ内のステートメントをDb2が無効にするかどうかを制御できます。 データ共用環境では、グループ内の他のメンバーのキャッシュにある関連ステートメントも無効になります。 統計情報の収集は、デフォルトではキャッシュされたステートメントを無効にしません。変更の終わり

このタスクについて

キャッシュ・ステートメントを無効化すると、それらのステートメントの次回の呼び出しは完全準備状態になり、アクセス・パスの最新の変更を使用できます。 さまざまなアクションの中でも特に以下のアクションでは、新規アクセス・パスを取得するためにキャッシュ動的ステートメントの無効化が必要になります。

  • 統計の収集。
  • オンライン・サブシステム・パラメーターの変更。
  • 索引の変更。
  • 最適化パラメーター、実動システム・モデリング、または照会アクセラレーションしきい値のプロファイル表に対する変更。

この無効化は、今後の PREPARE 操作のみに影響します。 無効化されたステートメントのいずれかが次回準備される際に、動的ステートメント・キャッシュ用の新しいステートメントが作成されます。 ただし、RUNSTATSが完了する前に、動的ステートメント・キャッシュからステートメントのコピーを既に取得しているDb2スレッドは、すべて、そのステートメントのコピーを使用し続けることができます。

重要 : SQLCODE -904 と理由コード 00E70081 が表示された場合は、動的ステートメント・キャッシュ内のステートメントを無効にするこの手順では問題は解決されません。

プロシージャー

変更の開始動的ステートメントキャッシュ内のステートメントを無効にするには、以下のいずれかの操作を行います。変更の終わり

  • 変更の開始 無効にしたいステートメントによって参照されているオブジェクトに対してRUNSTATSを実行し、以下のオプションのいずれかを指定します
    オプション 説明
    変更の開始INVALIDATECACHE YES変更の終わり 変更の開始 Db2 が無効になったステートメントに対して新しいアクセス・パスを生成する際、新たに収集された統計情報、既存の統計情報、またはデフォルト統計情報のいずれかを使用して新しいアクセス・パスを生成することがあります。これは、指定された他のRUNSTATSオプションによって異なります。変更の終わり
    UPDATE NONE および REPORT NO これらのオプションを指定すると、RUNSTATS は新しい統計を収集しません。 Db2 は、無効化されたステートメントの新しいアクセス・パスを生成するときに、別の RUNSTATS ジョブが暫定的に新しい統計を収集しない限り、既存の統計を変更せずに使用します。
    変更の開始RESET ACCESSPATH変更の終わり 変更の開始このオプションを指定すると、RUNSTATS は統計をデフォルト値にリセットします。 Db2 が無効になったステートメントに対して新しいアクセス・パスを生成する際には、その間に別のRUNSTATSジョブで新しい統計情報が収集されていない限り、デフォルトの統計情報が使用されます。 Db2 がデフォルトの統計を使用して新しいアクセスパスを生成する場合、アクセスパスの後退が発生する可能性があります。 詳細については、「アクセスパスの統計のリセット 」を参照してください。変更の終わり
    変更の終わり
  • 変更の開始 STATISTICSキーワードを指定し、INVALIDATECACHE YESオプションを含めるようにしてください。以下のユーティリティをステートメントで参照されたオブジェクト上で実行する場合:
    • LOAD
    • REBUILD INDEX
    • REORG INDEX
    • REORG TABLESPACE
    変更の終わり