pureQuery を使用して JPA アプリケーション内の SQL ステートメントの静的実行を構成する場合、静的 SQL の利点を活用でき、ワークベンチの多くの役立つフィーチャーを活用できます。
静的 SQL には、次の利点があります。
- 動的ステートメント・キャッシュの回避
- 静的 SQL を使用することで、DB2 の動的ステートメント・キャッシュの競合が削減され、動的 SQL を使用するアプリケーションのパフォーマンスが向上します。
- アクセス・パスの一貫性
- 静的 SQL は、アプリケーションの実行前にアクセス・パスを固定することによって、応答時間を予測可能で安定したものにします。一方、動的 SQL のアクセス・パスは実行時に計算されます。
- アプリケーションのパフォーマンスが向上する可能性
- 静的 SQL では、アプリケーションのパフォーマンスが向上する可能性があります。
- アクセス・プランが実行時より前に決定されるため、実行時に SQL ステートメントを準備する必要がなくなります。
- 各ステートメントを準備して記述する必要がないため、クライアント・アプリケーションとデータベース・サーバーの間のネットワーク・トラフィックが削減されます。
- 静的 SQL では、述部で使用するホスト変数またはパラメーターのデータ・タイプが厳密に強制されます。
この厳密な強制によって、入力データがデータベース内のターゲット・タイプに必ず一致します。
- セキュリティーの強化
- データベース・オブジェクトに対する特権を付与するのではなく、DB2® パッケージに対する EXECUTE 特権をユーザーに付与できます。
- パッケージ改訂の容易性
- DB2 パッケージのバージョン管理によって、以前の優れたアクセス・パスを失うリスクを犯すことなく、パッケージを再バインドできます。
ワークベンチでは、以下のフィーチャーを活用できます。
- JPA プロジェクトの自動構成
- アプリケーションが含まれる JPA プロジェクトを作成した後、pureQueryXML ファイルの生成と、それらのファイルに含まれる SQL ステートメントのバインドのサポートを使用可能にできます。
そのサポートを使用可能にすると、必要な JAR ファイルがワークベンチによりプロジェクトのビルド・パスに追加されます。
ワークベンチは、Default.bindProps ファイルも作成します。このファイルは、パッケージに SQL ステートメントをバインドするためのオプションを設定するために使用します。複数の pureQueryXML ファイルを生成した場合、それぞれ個別にこれらのオプションを設定できます。
Default.bindProps ファイルは名前変更しないでください。
キャプチャーされた SQL ステートメントをバインドするとき、ワークベンチはバインド・オプションがこの名前のファイルにあるものと想定します。
- さまざまなデータベースに対するバインドのための接続の容易な切り替え
- pureQueryXML ファイルにある SQL ステートメントのバインド対象は、Java プロジェクトに関連付けられたデータベースにすることも、他のデータベースにすることもできます。
- pureQueryXML エディター
- このエディターを使用して、pureQueryXML ファイルから SQL ステートメントを削除できます。
また、アプリケーション・コードを変更することなく、個々の SQL ステートメントを、パフォーマンスの最適化されたステートメントに置換することもできます。
- 扱うオブジェクト間の関係を表示する「SQL Outline」ビュー
- このビューを使用すると、SQL ステートメント、仕様に基づいてワークベンチが推奨または作成する DB2 パッケージ、SQL ステートメントを含む Java ファイル、および SQL ステートメントがアクセスまたは参照するデータベース・オブジェクトの間の関係を表示できます。
- SQL ステートメントの記述および妥当性検査の支援機能が組み込まれた Java エディター
- プロジェクトに Java ソース・ファイルが含まれる場合、Java エディターのコンテンツ・アシスタンス・フィーチャーおよび SQL 妥当性検査フィーチャーを活用して SQL ステートメントを作成および編集できます。