prepareAllSQLStatements
prepareAllSQLStatements ビルド記述子オプションは、EGL が SQL ステートメントを実行するために使用する JDBC オブジェクトの種類を制御します。
Java™ 環境で (ストアード・プロシージャー呼び出し以外の) SQL ステートメントを実行する場合、JDBC API は、SQL ステートメントをデータベースに送信するために以下の 2 つの異なるオブジェクトを提供します。
- PreparedStatement
- このオブジェクトは Statement クラスから派生します。SQL ステートメントを含み、パラメーターを使用できます。
- ステートメント
- これは、より一般的なオブジェクトで、SQL ステートメントを含まず、パラメーターを使用しません。
EGL が使用するオブジェクトは、多数の要因に依存します。EGL は DB2® と Derby に対しては、常に PreparedStatements を生成します。ほとんどの場合、PreparedStatements は J2EE サーバーによってキャッシュに入れることができ、再利用可能であるため、より効率的です。ただし、J2EE 環境以外では、PreparedStatements を使用するとパフォーマンスが低下する可能性があります。このため、PreparedStatements の使用を強制するかどうかの決定はオプションのままになっています。デフォルト値は、EGL が使用するオブジェクトを選択することを意味する NO です。
ご使用のアプリケーションで両方の設定を試行して、どちらの方がパフォーマンスが優れているかを確認してください。
PreparedStatements をキャッシュに入れることによりパフォーマンスが向上する可能性もあります。詳しくは、『cachePreparedStatements』を参照してください。
値
prepareAllSQLStatements ビルド記述子オプションには、以下の値があります。
- YES
- EGL は、Statement オブジェクトではなく PreparedStatement オブジェクトを使用して、SQL ステートメントをデータベースに送信します。EGL が常に PreparedStatement オブジェクトを使用する DB2 と Derby では、このオプションを YES に設定しても影響はありません。
- NO (デフォルト値)
- EGL は、他の要因に基づいて Statement オブジェクトか PreparedStatement オブジェクトを選択します。