プリコンパイル・オプションの使用によるデータベース・パフォーマンスの向上

パフォーマンスが向上するように SQL プログラムを作成するためのプリコンパイル・オプションがいくつか用意されています。 これらのオプションを使用すると、アプリケーションの働きに影響することがあるので、これらはあくまでもオプションです。そのために、これらのパラメーターのデフォルト値は、以前のリリースからアプリケーションを正しくマイグレーションできるような値になっています。ただし、他のオプションを指定してもパフォーマンスを向上することができます。

以下の表は、これらのプリコンパイル・オプションとそれぞれがパフォーマンスに及ぼす影響を示しています。

これらのオプションの一部は、ほとんどのアプリケーションで使用できます。CRTDUPOBJ コマンドを使用すると、SQL CRTSQLxxx コマンドのコピーを作ることができ、 CHGCMDDFT コマンドを使用すると、プリコンパイル・パラメーターの最適値をカスタマイズすることができます。 DSPPGMDSPSRVPGMDSPMOD、 または PRTSQLINF の各コマンドを使用すると、 既存のプログラム・オブジェクトで使用されているプリコンパイル・オプションを表示することができます。

表 1. プリコンパイル・オプションとそれらがパフォーマンスに及ぼす影響
プリコンパイル・オプション 最適値 改善点 考慮事項
ALWCPYDTA *OPTIMIZE (デフォルト) 順序付け基準またはグループ化基準が選択基準と矛盾するような照会 照会をオープンするときデータのコピーを作ることができる。
ALWBLK *ALLREAD (デフォルト) 追加の読み取り専用カーソルがブロック化を使用する。 ROLLBACK HOLD は読み取り専用カーソルの位置を変更できない。位置指定の更新または削除の動的処理は失敗するおそれがある。
CLOSQLCSR *ENDJOB、*ENDSQL、または *ENDACTGRP カーソル位置をプログラムの呼び出しから呼び出しの間保存できる。 プログラムの呼び出しが終了したとき SQL カーソルの暗黙のクローズが行われない。
DLYPRP *YES SQL の PREPARE ステートメントを使用するプログラムは実行速度が速くなる。 準備されたステートメント全体の妥当性検査は、 ステートメントが実行またはオープンされるまで据え置かれる。
TGTRLS *CURRENT (デフォルト) プリコンパイラーは、現行リリースで強化されたパフォーマンスを利用するコードを生成できる。 プログラム・オブジェクトは旧リリースのシステムで使用できない。