動的ステートメント・キャッシュ内のステートメントの無効化
ステートメント内で参照されるオブジェクトの統計を収集するときに、動的ステートメント・キャッシュ内のステートメントをDb2が無効にするかどうかを制御できます。 データ共用環境では、グループ内の他のメンバーのキャッシュにある関連ステートメントも無効になります。 統計情報の収集は、デフォルトではキャッシュされたステートメントを無効にしません。
このタスクについて
キャッシュ・ステートメントを無効化すると、それらのステートメントの次回の呼び出しは完全準備状態になり、アクセス・パスの最新の変更を使用できます。 さまざまなアクションの中でも特に以下のアクションでは、新規アクセス・パスを取得するためにキャッシュ動的ステートメントの無効化が必要になります。
- 統計の収集。
- オンライン・サブシステム・パラメーターの変更。
- 索引の変更。
- 最適化パラメーター、実動システム・モデリング、または照会アクセラレーションしきい値のプロファイル表に対する変更。
この無効化は、今後の PREPARE 操作のみに影響します。 無効化されたステートメントのいずれかが次回準備される際に、動的ステートメント・キャッシュ用の新しいステートメントが作成されます。 ただし、RUNSTATSが完了する前に、動的ステートメント・キャッシュからステートメントのコピーを既に取得しているDb2スレッドは、すべて、そのステートメントのコピーを使用し続けることができます。
重要 : SQLCODE -904 と理由コード 00E70081 が表示された場合は、動的ステートメント・キャッシュ内のステートメントを無効にするこの手順では問題は解決されません。
プロシージャー
動的ステートメントキャッシュ内のステートメントを無効にするには、以下のいずれかの操作を行います。