FLUSH OPTIMIZATION PROFILE CACHE ステートメント
同じ最適化プロファイルを使用して、複数のステートメントをコンパイルすることができます。
最適化プロファイル処理をより効率的にするため、初めて最適化プロファイルを使ってステートメントを最適化するときに最適化プロファイルの処理が行われ、出力が最適化プロファイル・キャッシュに保管されます。 最適化プロファイルへの後続の参照では、最適化プロファイル・キャッシュ内にある処理済みのバージョンが使用されます。
SYSTOOLS.OPT_PROFILE に保管されているバージョンが更新されたときには、最適化プロファイル・キャッシュから最適化プロファイルを除去する必要があります。 古いバージョンがキャッシュから除去されると、最適化プロファイルを使用する後続のステートメントの最適化の際に新規のバージョンが使用されます。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 このステートメントは、動的に作成できる実行可能ステートメントです。
許可
このステートメントの許可 ID が保有する特権には、SQLADM 権限または DBADM 権限のいずれかが含まれている必要があります (SQLSTATE 42502)。
構文
説明
- 最適化プロファイル名
- 最適化プロファイル・キャッシュからフラッシュされる最適化プロファイルの名前を指定します。 指定した名前が修飾されていない場合、CURRENT DEFAULT SCHEMA レジスターの値が暗黙的な修飾子として使用されます。 ALL
- すべてのアクティブなデータベース・パーティションのすべてのプロファイルが最適化プロファイル・キャッシュからフラッシュされることを指定します。
注
- FLUSH OPTIMIZATION PROFILE CACHE ステートメントは、最適化プロファイル・キャッシュからすべての最適化プロファイルまたは単一の最適化プロファイルを除去します。 さらに、その最適化プロファイルを使用して準備されて、キャッシュに入れられたすべての動的 SQL ステートメントを論理的に無効化します。
- 無効にされた動的プランの新規アクセス・プランは、同じ SQL ステートメントが次回要求されるときに再生成されます。
- このステートメントによって最適化プロファイル・キャッシュから除去された最適化プロファイルを参照するパッケージは、新規アクセス・プランを生成できるよう、明示的に再度バインドする必要があります。
例
- 例 1: 最適化プロファイル "Rick"."Foo" が最適化プロファイル・キャッシュからフラッシュされます。
SET CURRENT SCHEMA = '"Rick"' FLUSH OPTIMIZATION PROFILE CACHE "Foo"
- 例 2: 最適化プロファイル JOHN.ALL が最適化プロファイル・キャッシュから除去されます。
SET CURRENT SCHEMA = '"Rick"' FLUSH OPTIMIZATION PROFILE CACHE JOHN.ALL
メッセージ
- 最適化プロファイル・キャッシュが空である場合、または指定した最適化プロファイル (明示的または暗黙的に指定されているかにかかわらず) が最適化プロファイル・キャッシュに存在しない場合、エラーは発行されません。