enableDynamicSQLReplacement プロパティー

pureQueryXML ファイル内の代替 SQL ステートメント、および対応する元のステートメントのどちらも StaticBinder ユーティリティーによってバインドされなかった場合に、それらの代替ステートメントを実行するかどうかを指定します。

pureQueryXML ファイルに SQL ステートメントを取り込んだ後に、アプリケーションで必要なパフォーマンスを下回っているステートメントが 1 つ以上見つかる場合があります。 ただし、開発サイクルの終盤にこの事実を見つけた場合には、アプリケーションの修正が可能ではないことがあります。 このような場合には、低パフォーマンスの各 SQL ステートメントの代替 SQL ステートメントを追加することで、pureQueryXML ファイルを編集できます。 アプリケーションの実行時、pureQuery は、最初にキャプチャーした SQL ステートメントでなく代替 SQL ステートメントを使用します。

代替 SQL ステートメントを追加後、それらをバインドするかどうかを選択できます。バインドはしていないものの、それらを使用する必要がある場合は、アプリケーションの実行時に enableDynamicSQLReplacement プロパティーを TRUE に設定する必要があります。

制約事項:
  • SQL ステートメントに指定されたパラメーター・マーカーが含まれる場合は、代替ステートメントに同数のパラメーター・マーカーが存在し、そのマーカーの順序が同じでなければなりません。
  • 代替 SQL ステートメントは、同様のアクションを実行するステートメントを置き換える必要があります。 例えば、代替 SELECT ステートメントの結果セットは、元の SELECT ステートメントの結果セットと一致する必要があります。
  • 異なる種類のステートメントを代替 SQL ステートメントにすることはできません。 例えば、SELECT ステートメントの代替ステートメントをプロシージャー呼び出しにすることはできません (そのプロシージャー呼び出しが同様のアクションを実行する場合でも)。

このプロパティーには、以下の値を指定できます。

TRUE
代替 SQL ステートメントを実行するように指定します。 バインドされていないため、pureQuery は動的に実行します。
FALSE
代替 SQL ステートメントを実行しないように指定します。 代わりに、pureQuery は、アプリケーションで使用される pureQueryXML ファイル内の元の SQL ステートメントを実行します。
これはデフォルト値です。
以下のリストで、pureQuery Runtime が代替 SQL ステートメントを実行するかどうかを説明します。
  • executionModeDYNAMIC の場合、実行される SQL ステートメントは enableDynamicSQLReplacement プロパティーの値によって異なります。
  • executionModeSTATIC の場合:
    • 代替ステートメントがバインドされていない場合は、元のステートメントに対して enableDynamicSQLReplacement オプションが TRUE であり、かつ、isBindable 属性の値が FALSE である場合のみ実行されます。
    • 代替 SQL ステートメントがバインドされている場合、代替ステートメントは静的に実行されます。enableDynamicSQLReplacement プロパティーは無視されます。

      代替ステートメントをバインドするには、代替ステートメントをバインドしてから、バインド操作を実行します。元のステートメントにバインド可能とマークされている場合、代替ステートメントはバインドされます。

DB2 CLI および IBM Data Server Driver の使用上の注意

DB2® コール・レベル・インターフェースまたは IBM® Data Server Driver と pureQuery Runtime を一緒に使用する場合は、pureQuery Runtime プロパティーを構成キーワードとして使用できます。

IBM CLI キーワードの構文
enableDynamicSQLReplacement = TRUE | FALSE
IBM Data Server Driver 構成の構文
<パラメーター名="enableDynamicSQLReplacement" 値="TRUE | FALSE" />
同等の IBM Data Server Provider for .NET 接続ストリング・キーワード
enableDynamicSQLReplacement = TRUE | FALSE

フィードバック