SQLJ でのアプリケーション・パフォーマンス

SQLJ が使用する静的 SQL は、多くの場合、JDBC が使用する動的 SQL より高速に実行できます。

SQL ステートメントを処理するために、データベース・サーバーは以下のステップを実行します。

  1. SQL ステートメントの構文エラーを検査して、その結果のすべてのエラー・メッセージ を生成します。
  2. ステートメントにデータベース・オブジェクトが存在していて、データ型が そのオブジェクトにふさわしいものであることを確認します。
  3. SQL ステートメントの構文を最適化して、ステートメントに必要なデータを読み取り、 書き込みを行う最適なアクセス・パスを決定します。 単純な SQL ステートメントでは最適化は簡単ですが、索引が多く、たくさんのテーブルを操作する複雑な SQL ステートメントでは、最適化プロセスに多数のオプションが存在する 場合があります。
  4. SQL ステートメントを実行します。

動的 SQL により、データベース・サーバーは、それぞれの SQL ステートメントごとに実行時に上記のステップを繰り返します (一部のサーバーは、繰り返し実行される動的 SQL ステートメントの最初の 2 ステップの結果をキャッシュすることができます)。 これらのステップに関連した処理は動的 SQL のパフォーマンスに影響を与えます。

静的 SQL では、設計段階で多くの予備作業を実行します。 ワークベンチが SQLJ ファイルをビルドするたびに、SQLJ 変換プログラムは構文検査と整合性検査を行い、SQLJ ファイルに対応する Java™ ソース・ファイルを作成します。 ユーザーはワークベンチでウィザードを使用して SQLJ カスタマイズ・スクリプトを作成し、実行することができます。 カスタマイズ・スクリプトは、Java クラスをデータベースにバインドするための静的 SQL ステートメントに関する情報が入ったパッケージを作成します。 その後、アプリケーションを実行すると、先行の作業が完了しているので、良好なパフォーマンスが得られます。

関連概念
SQLJ の概要
SQLJ 対応 Java プロジェクトおよび SQLJ ファイル
DB2 での SQLJ
DB2 のカスタマイズおよびバインド・プロセス
関連タスク
SQLJ ファイルの作成

フィードバック