DB2® データベースでは、特殊レジスターの値に変更を加えると、 アプリケーションの動作方法に影響を与える可能性があります。 たとえば、特殊レジスター CURRENT DECFLOAT ROUNDING MODE は、SQL ステートメントによって返されるデータに影響を与える可能性があります。 SQL ステートメントのキャプチャー時に、この特殊レジスターの値が ROUND_CEILING に設定されているとします。 その後で、対応する値を ROUND_FLOOR に設定するバインド・オプションを指定して、pureQueryXML ファイル内の SQL ステートメントをバインドしたとします。 アプリケーションが SQL ステートメントを静的モードで実行した際に、データが特殊レジスターの値に依存している場合には、返されるデータが異なっている可能性があります。アプリケーション・コードに変更を加えていなくても、 結果が異なる場合があります。
pureQuery クライアント最適化は、アプリケーションの実行中 に SQL ステートメントをキャプチャーすると、いくつかの特殊レジスター値 をトラックおよび記録します。キャプチャーした SQL のマージおよび構成時には、 SQL ステートメントとともに記録された特殊レジスター情報は、ステートメントに 残されています。
以下は、特殊レジスターの pureQuery カテゴリーです。
記録された特殊レジスター情報は、pureQueryXML ファイルに特殊レジスター値セット として保管されます。 この情報は、Configure ユーティリティーで pureQueryXML ファイルを構成する際に、ステートメント・セットを作成するために使用できます。記録された特殊レジスター情報は、pureQueryXML エディターで pureQueryXML ファイルを表示する際にワークベンチに示されます。
pureQuery Configure ユーティリティーのオプション -groupSQLBySpecialRegisters および -optionsFileForBind を使用すると、SQL ステートメントの静的な実行に役立ちます。 これらのオプションは、別個に使用することも、一緒に使用することもできます。
-groupSQLBySpecialRegisters オプションを使用すると、SQL ステートメントのキャプチャー時に記録された特殊レジスター情報に基づいて、SQL ステートメントがステートメント・セットにグループ化されます。
-optionsFileForBind オプションを使用すると、StaticBinder オプション・ファイルが作成されます。StaticBinder オプション・ファイルには、pureQueryXML ファイル内のステートメント・セットのバインド・オプションが含まれています。 バインド・オプションは、SQL ステートメントとともに記録された特殊レジスター情報に基づいて決まります。このファイルには、pureQueryXML ファイルのステートメント・セット、SQL ステートメント、および特殊レジスター情報に関する情報および警告を含むコメントも含まれています。
これらの Configure ユーティリティー・オプションを使用することにより、特殊レジスター情報に基づいて SQL ステートメントをグループ化し、バインド・オプションを含む StaticBinder オプション・ファイルを生成することができます。 このファイル内のバインド・オプションおよび追加情報を使用して一連のバインド・オプションを指定することにより、SQL ステートメントが静的に実行された際の動作を、アプリケーションから呼び出されて動的に実行された場合と同じにすることができます。 バインド・オプションのセットがある場合には、StaticBinder ユーティリティー、オプション、および pureQueryXML ファイルを使用して、パッケージをデータベースにバインドしてください。
pureQuery Runtime によって記録される特殊レジスター、およびそれらの特殊レジスターに関連したバインド・オプションを、次の表にリストします。
特殊レジスター | バインド・オプション | 注 |
---|---|---|
CURRENT DECFLOAT ROUNDING MODE1 | DB2 for z/OS® および DB2 for System i® の場合は ROUNDING。 DB2 for Linux, UNIX, and Windows の場合にはバインド・オプションなし。 |
ROUNDING バインド・オプションは、すべての DB2 データベースで使用可能なわけではありません。 このバインド・オプションをサポートしていないデータベースは、バインド・オプションが使用されたときに警告を報告します。 |
CURRENT PATH | DB2 for Linux, UNIX, and Windows の場合には FUNCPATH DB2 for z/OS および DB2 for System i の場合は PATH または FUNCPATH |
Configure ユーティリティーは、StaticBinder オプション・ファイルの生成時に FUNCPATH バインド・オプションを指定します。 |
CURRENT PRECISION2 | DEC | CURRENT PRECISION 特殊レジスター値には、精度の値、および割り算演算の除算の最小位取りの値を含めることができます。
バインド・オプション値には、除算の最小位取りの値を含めることができません。
Configure ユーティリティーは、StaticBinder オプション・ファイルの生成時に CURRENT PRECISION 値から除算の最小位取りの値を検出すると、警告コメントを生成します。 |
CURRENT SCHEMA3 | QUALIFIER | |
CURRENT SQLID3 | DB2 for Linux, UNIX、および DB2 for System i の場合には QUALIFIER DB2 for z/OS の場合にはバインド・オプションなし |
Configure ユーティリティーは、StaticBinder オプション・ファイルの生成時に CURRENT SCHEMA 特殊レジスターの値と CURRENT SQLID 特殊レジスターの値が同一でない場合には、警告コメントを生成します。
DB2 for z/OS では、いくつかの状況で OWNER バインド・オプションを使用することができます。 |