アプリケーション内での最適化プロファイルの設定

SET CURRENT OPTIMIZATION PROFILE ステートメントを使用することにより、アプリケーションにおいて、動的ステートメントの現行最適化プロファイルの設定を制御できます。

このタスクについて

ステートメントで指定する最適化プロファイル名はスキーマ修飾名でなければなりません。 スキーマ名を指定しない場合、CURRENT SCHEMA 特殊レジスターの値が暗黙スキーマ修飾子として使用されます。

指定される最適化プロファイルは、別の SET CURRENT OPTIMIZATION PROFILE ステートメントが検出されるまで、後続のすべての動的ステートメントに適用されます。 静的ステートメントは、この設定が評価される前に前処理されてパッケージされるため、影響を受けません。

プロシージャー

アプリケーション内で最適化プロファイルを設定するには、以下のようにします。
  • アプリケーション内の任意の箇所で、SET CURRENT OPTIMIZATION PROFILE ステートメントを使用します。 例えば、次のシーケンス内の最終ステートメントは、JON.SALES 最適化プロファイルにしたがって最適化されます。
       EXEC SQL  SET CURRENT OPTIMIZATION PROFILE = 'NEWTON.INVENTDB';
    
       /* The following statements are both optimized with 'NEWTON.INVENTDB' */
       EXEC SQL PREPARE stmt FROM SELECT ... ;
       EXEC SQL EXECUTE stmt;
    
       EXEC SQL EXECUTE IMMEDIATE SELECT ... ;
    
       EXEC SQL SET CURRENT OPTIMIZATION PROFILE = 'JON.SALES';
    
       /* This statement is optimized with 'JON.SALES' */
       EXEC SQL EXECUTE IMMEDIATE SELECT ... ;
  • アプリケーションの開始時に有効だったデフォルト最適化プロファイルをオプティマイザーが使用するようにする場合、NULL 値を指定します。 以下に例を示します。
       EXEC SQL SET CURRENT OPTIMIZATION PROFILE = NULL;
  • オプティマイザーが最適化プロファイルを使用しないようにする場合、空ストリングを指定します。 以下に例を示します。
       EXEC SQL SET CURRENT OPTIMIZATION PROFILE = '';
  • コール・レベル・インターフェース (CLI) アプリケーションを使用している場合は、 UPDATE CLI CONFIGURATION コマンドを使用して db2cli.ini ファイルに CURRENTOPTIMIZATIONPROFILE パラメーターを追加することができます。 以下に例を示します。
       update cli cfg for section sanfran using currentoptimizationprofile jon.sales
    この結果、db2cli.ini ファイル内に以下のエントリーが作成されます。
       [SANFRAN]
       CURRENTOPTIMIZATIONPROFILE=JON.SALES
    注: アプリケーション内の SET CURRENT OPTIMIZATION PROFILE ステートメントは、この設定をオーバーライドします。