バッチ実行にパラメータの配列を使用
アプリケーションで、バッチと呼ばれる文の実行のグループを使用して、パフォーマンスを向上できます。
SQLParamOptions
ODBC関数では、アプリケーションによってSQLBindParameter
で割り当てられるパラメータのセットに複数の値を指定できます。これは、同じSQL文を様々なパラメータ値を使用して複数回処理する場合に有効です。たとえば、アプリケーションで、INSERT
文に関連付けられているパラメータのセットに複数の値のセットを指定すると、INSERT
文を1回実行してその挿入処理をすべて実行できます。
TimesTenでは、SQLParamOptions
をINSERT
、UPDATE
、DELETE
およびMERGE
文とともに使用できますが、SELECT
文とともに使用することはできません。(TimesTen ScaleoutではMERGE
文はサポートされていません。)
これらのデータベース操作の理想的なバッチ・サイズは、ユーザー環境の詳細に応じて異なり、判断するにはテストおよび実験が必要です。
ヒント:
TimesTen Classicでは、挿入メカニズムを最適化するために、挿入用に256の正確な倍数であるバッチ・サイズを使用することが重要です。
表7-1に、SQLParamOptions
引数の概要を示します。詳細は、ODBC APIのリファレンス・マニュアルを参照してください。
表7-1 SQLParamOptionsの引数
引数 | 型 | 説明 |
---|---|---|
|
|
文ハンドル |
|
|
各パラメータの値の数 |
|
|
現在の行番号の記憶域へのポインタ |
crow
値が1より大きく、SQLBindParameter
のrgbValue
引数がパラメータ値の配列を指し、pcbValue
引数が長さの配列を指すと想定しています。(「SQLBindParameter関数」も参照してください。)
バッチ処理の完全な動作例は、TimesTen Classicクイック・スタートで、ソース・ファイルbulkinsert.c
を参照してください。(TTClassesを使用したC++でのプログラミングについては、bulktest.cpp
も参照してください。)「TimesTenクイック・スタートおよびサンプル・アプリケーションについて」を参照してください。
ノート:
SQLParamOptions
をTimesTenクライアント/サーバー・ドライバとともに使用する場合、実行時データのパラメータはサポートされません。(アプリケーションは、SQLBindParameter
rgbValue
バッファで、またはSQLPutData
の1回以上のコールで、パラメータの値を渡すことができます。SQLPutData
とともにデータが渡されるパラメータは、実行時データ・パラメータといいます。これらは一般に、SQL_LONGVARBINARY
およびSQL_LONGVARCHAR
パラメータのデータを送信するために使用され、その他のパラメータと混在することができます。)