pureQuery クライアント最適化による DB2 特殊レジスターの変更のトラッキング

pureQuery クライアント最適化が実行中のアプリケーション から SQL ステートメントをキャプチャーすると、 SET SPECIAL REGISTER ステートメントの実行時にログ・ファイルに 警告メッセージが送信されます。SQL ステートメントから戻される データに影響を与える可能性がある、共用される特殊レジスター 設定への変更は、SQL のキャプチャー時に pureQueryXML ファイルに 記録されます。

DB2® データベースでは、特殊レジスターの値に変更を加えると、 アプリケーションの動作方法に影響を与える可能性があります。 以下の例では、特殊レジスター CURRENT DECFLOAT ROUNDING MODE を使用し、 SQL ステートメントのキャプチャー時の値は ROUND_CEILING に 設定されていると想定しています。pureQueryXML 内の SQL ステートメントをバインドし、 値を ROUND_FLOOR に設定して静的モードでアプリケーションを 実行する場合、データが特殊レジスターの値に依存していると、戻されるデータが 異なる可能性があります。アプリケーション・コードに変更を加えていなくても、 結果が異なる場合があります。

pureQueryXML クライアント最適化によりトラックおよび記録される特殊レジスターの値

pureQuery クライアント最適化は、アプリケーションの実行中 に SQL ステートメントをキャプチャーすると、いくつかの特殊レジスター値 をトラックおよび記録します。キャプチャーした SQL のマージおよび構成時には、 SQL ステートメントに記録された特殊レジスター情報は、ステートメントに 残されています。

以下は、特殊レジスターの pureQuery カテゴリーです。

トラッキングおよび記録される
トラッキングされ、変更が pureQueryXML データとして記録される特殊レジスター。 pureQueryXML ファイルに保管された特殊レジスター情報は、Configure ユーティリティーを使用して pureQueryXML ファイルを構成する際に使用でき、pureQueryXML ファイルを編集する際にワークベンチに表示されます。 Configure ユーティリティーに関する情報および pureQueryXML ファイルの編集中に表示される情報について詳しくは、関連リンクを参照してください。
安全ではなく記録されない
記録されないが、値への変更が SQL ステートメントから戻される データに影響を与える可能性がある特殊レジスター。 安全ではなく記録されない変更が特殊レジスターに加えられると、 unTrackedRegisters 属性の値が true に設定されます。
安全であり記録されない
安全であり、pureQueryXML ファイルに記録されない特殊レジスター。 一般に、これらの特殊レジスターへの変更は、SQL ステートメントから 戻されるデータに影響を与えません。例えば、アプリケーション・プロセス によって動的に準備される照会の実行に関する並列処理の度合いを指定する 特殊レジスター CURRENT DEGREE など。このカテゴリーに属するその他の 特殊レジスター: CURRENT PACKAGE PATH、CURRENT PACKAGESET、CURRENT CLIENT_ACCTNG、 CURRENT CLIENT_APPLNAME、CURRENT CLIENT_USERID、CURRENT CLIENT_WRKSTNNAME、 および CURRENT DEBUG MODE。
注: 特殊レジスター PACKAGE PATH および PACKAGE SET は記録されませんが、 静的実行に影響を与えます。PACKAGE SET を使用する場合、同じ COLLECTION に 静的パッケージをバインドする必要があります。そうしないと、静的実行中 に -805 エラーが発行されます。
以下の DB2 特殊レジスターの値も、SQL ステートメントと共にファイル内にキャプチャーされ、保管されます。
  • CURRENT SCHEMA
  • CURRENT PATH
  • CURRENT PRECISION1
  • CURRRENT DECFLOAT ROUNDING MODE2
  • CURRENT SQLID3
注:
  1. この特殊レジスターは、DB2 for z/OS® でのみサポートされます。 この特殊レジスターは、DB2 for Linux,UNIX and Windows でも、DB2 for System i® でもサポートされません。
  2. 特殊レジスターは、DB2 for z/OS バージョン 9.1 以降、 および DB2 for Linux, Windows and UNIX バージョン 9.5 以降でサポートされます。
  3. DB2 for Linux,UNIX and Windows お よび DB2 for System i では、 CURRENT SQLIDCURRENT SCHEMA は 同義語として使用され、同じバインド・オプション QUALIFIER を指定して使用できます。

pureQueryXML ファイルに保管されるキャプチャーされた特殊レジスター情報は、 Configure ユーティリティーで pureQueryXML ファイルを構成する際に、 ステートメント・セットを作成するために使用できます。キャプチャーされた特殊レジスター情報は、pureQueryXML エディターで pureQueryXML ファイルを表示する際にワークベンチに示されます。


フィードバック