pureQuery クライアント最適化を使用した DB2 パッケージの管理

pureQuery Runtime を使用すると、pureQuery クライアント最適化対応のアプリケーションが DB2® データベース上で SQL ステートメントを静的に実行するときに、パッケージ・コレクションとパッケージ・バージョンを使用して DB2 パッケージを管理できます。
pureQuery クライアント最適化プロセスでは、バインド・ステップによってデータベース・サーバー上に DB2 パッケージが作成されます。DB2 パッケージは、DB2 サーバーでのアプリケーションの静的実行に必要な SQL 情報を保管します。DB2 データベース上の 1 つ以上のパッケージ・セットには、アプリケーションによって実行される SQL ステートメントが含まれます。 pureQuery Runtime は、パッケージを、pureQuery クライアント最適化対応のアプリケーションによって使用される pureQueryXML ファイル内の SQL ステートメントにマップします。バインド・プロセスで以下のタスクを実行することもできます。
  • セキュリティー要件の決定
  • データベース・オブジェクトの存在の確認
  • アクセス・パスの選択、インデックスの使用、および表の結合の順序の決定
  • クエリーの再書き込みが必要かどうかの確認
  • 作業ファイルが必要かどうかの確認
  • 並列処理が使用可能かどうかの評価
Configure ユーティリティー・オプションと BIND オプションを、適切に、pureQueryXML ファイルと正確に一致するように設定することにより、柔軟性のある実装環境を実現できます。さまざまな目的に使用される多くの静的アプリケーションは、単一の環境で共存することができます。以下に例を示します。
  • 非修飾の表名を使用する単一のアプリケーションは、さまざまな表のセットに対して同じシステム内で実行できます。
  • さまざまな表のセットに対して、複数のアプリケーション・インスタンスを同時に実行できます。
  • パッケージ名が同じでパッケージ・バージョンが異なる同じ表に対して、複数のバージョンの実動アプリケーションを実行できます。
重要: アプリケーションの SQL ステートメントが、3 つの部分から成る表名を使用することにより複数のロケーションを参照する場合は、参照されるすべてのロケーションでパッケージをバインドする必要があります。

パッケージ・コレクション

DB2 データベース上に、名前付きのパッケージ・セットである コレクション を作成できます。 -collection オプションを付けた pureQuery Configure ユーティリティーを使用して、pureQueryXML ファイル内の SQL ステートメントのコレクション名を指定します。その後、構成された pureQueryXML ファイルで pureQuery StaticBinder ユーティリティーを実行します。pureQueryXML ファイルにある SQL ステートメントを複数のコレクションにバインドする場合は、-bindOptions "COLLECTION(collection-name)" オプションで StaticBinder ユーティリティーを起動できます。

パッケージ・バージョン

pureQuery クライアント最適化プロセスのバインド・ステップの際のデフォルトのバインド操作は、既存のパッケージの置き換えです。ロケーション、コレクション ID、およびパッケージ名という 3 つの同じパッケージ ID を持つ新規パッケージがバインドされます。

BIND 操作中、パッケージが削除されるまでは、パッケージは同じロケーション、コレクション ID、およびパッケージ名を持つターゲット・サーバーのロケーションに存在します。新しく更新された整合性トークンを含む新規パッケージのみが存在することになります。この操作が実行された後、別の整合性トークンを持つ以前のバージョンのアプリケーション (つまり、pureQuery クライアント最適化の場合は、以前のバージョンの pureQueryXML ファイル) は、実行できなくなります。

アプリケーションで各バージョンのロジックを提供することなく、システムに複数のバージョンが同時に存在できるようにする場合は、Configure ユーティリティーの実行時に -pkgVersion オプションを使用できます。-pkgVersion オプションを指定すると、ファイル名にバージョン・タグが付加された pureQueryXML ファイルのコピーが作成されます。-pkgVersion オプションを付けて Configure を起動するたびに、新しい整合性トークンが生成され、その整合性トークンと共にファイルのコピーが保存されます。

注: 一致するパッケージを見つけるために、アプリケーションまたは pureQuery Runtime によってバージョンのストリング情報が使用されることはありません。バージョン情報は、サーバーでのパッケージ数の管理と、アプリケーションに対する複数の整合性トークンの許可のためにのみ使用されます。

実行時に複数のバージョンのパッケージを使用する場合は、さまざまなパッケージ・バージョンを起動する別個の pureQueryXML ファイルを保守する必要があります。データベース・サーバー上で正しいパッケージ・バージョンを実行するには、pureQuery クライアント最適化対応のアプリケーションが正しい pureQueryXML ファイルを使用していることを確認する必要があります。


フィードバック