CURRENT QUERY ACCELERATION 特殊レジスター

CURRENT QUERY ACCELERATION 特殊レジスターは、Db2 が動的 SQL 照会をアクセラレーター・サーバーに送信するタイミング、およびアクセラレーター・サーバーで障害が発生した場合に Db2 が行う処理を特定する値を指定します。 この特殊レジスターは静的 SQL 照会には適用されません。

データ・タイプは VARCHAR(255) です。

有効な値は以下のとおりです。

NONE
アクセラレーター・サーバーに照会を送信しないことを指定します。
ENABLE
Db2がそうすることが有利であると判別した場合にのみ、照会が加速されることを指定します。 照会の実行中にアクセラレーターの障害が発生した場合、またはアクセラレーターがエラーを返した場合、 Db2 はアプリケーションに負の SQLCODE を返します。
ENABLE WITH FAILBACK
Db2がそうすることが有利であると判別した場合にのみ、照会が加速されることを指定します。 照会の PREPARE または最初の OPEN の実行中にアクセラレーターがエラーを返した場合、Db2はアクセラレーターなしで照会を実行します。 FETCHまたはその後のOPENの実行中にアクセラレータがエラーを返した場合、 Db2 はエラーをユーザーに返し、クエリを実行しません。
制限事項 :クエリにパススルー専用式が含まれている場合、 Db2 は一致するユーザー定義関数が存在してもエラーを返し、クエリを高速化しません。 パススルーのみの式について詳しくは、 「パススルーのみの式による照会の高速化」を参照してください。
ELIGIBLE
照会が加速可能であれば加速するように指定します。 Db2 は、照会を加速するかどうかを決定する際にコスト情報を使用しません。 アクセラレーションに適格でない照会は、Db2によって実行されます。 照会の実行中にアクセラレーターの障害が発生した場合、またはアクセラレーターがエラーを返した場合、 Db2 はアプリケーションに負の SQLCODE を返します。
すべて
照会が加速可能であれば加速するように指定します。 Db2 は、照会を加速するかどうかを決定する際にコスト情報を使用しません。 アクセラレーションに適格ではない照会は、Db2によって実行されず、SQL エラーが返されます。 照会の実行中にアクセラレーターの障害が発生した場合、またはアクセラレーターがエラーを返した場合、 Db2 はアプリケーションに負の SQLCODE を返します。

CURRENT QUERY ACCELERATION の初期値は、次の設定のいずれかによって決定されます。

  • Db2 サブシステムパラメータQUERY_ACCELERATIONの値。 このサブシステム・パラメーターの初期値のデフォルトは、ご使用のご使用のインストール済み環境でその値を変更していない限り、NONE となります。
  • パッケージのバインドに対して指定された場合は、QUERYACCELERATION バインド・オプション。 この動作により、QUERYACCELERATION バインド・オプションを使用して、静的 SQL 照会だけでなく動的 SQL 照会のアクセラレーションの動作も指定できます。 このバインド・オプションには、デフォルト値がありません。

ユーザー定義関数またはストアド プロシージャ内の CURRENT QUERY ACCELERATION の初期値は、「ユーザー定義関数またはストアド プロシージャ内の特殊レジスタ」 の規則に従って継承されます。

レジスターの値は、SET CURRENT QUERY ACCELERATION ステートメントを実行すれば変更できます。

特殊レジスターの値を設定する優先順位 (低から高) は、次のとおりです。

  • QUERY_ACCELERATION サブシステム・パラメーター
  • QUERYACCELERATION バインド・オプション (指定されている場合)
  • 明示的な SET CURRENT QUERY ACCELERATION ステートメント
例: 以下のステートメントは、照会がアクセラレートされないように、CURRENT QUERY ACCELERATION 特殊レジスターを設定します。
  SET CURRENT QUERY ACCELERATION NONE;