バッチ実行にパラメータの配列を使用

アプリケーションで、バッチと呼ばれる文の実行のグループを使用して、パフォーマンスを向上できます。

SQLParamOptions ODBC関数では、アプリケーションによってSQLBindParameterで割り当てられるパラメータのセットに複数の値を指定できます。これは、同じSQL文を様々なパラメータ値を使用して複数回処理する場合に有効です。たとえば、アプリケーションで、INSERT文に関連付けられているパラメータのセットに複数の値のセットを指定すると、INSERT文を1回実行してその挿入処理をすべて実行できます。

TimesTenでは、SQLParamOptionsINSERTUPDATEDELETEおよびMERGE文とともに使用できますが、SELECT文とともに使用することはできません。(TimesTen ScaleoutではMERGE文はサポートされていません。)

これらのデータベース操作の理想的なバッチ・サイズは、ユーザー環境の詳細に応じて異なり、判断するにはテストおよび実験が必要です。

ヒント:

TimesTen Classicでは、挿入メカニズムを最適化するために、挿入用に256の正確な倍数であるバッチ・サイズを使用することが重要です。

表7-1に、SQLParamOptions引数の概要を示します。詳細は、ODBC APIのリファレンス・マニュアルを参照してください。

表7-1 SQLParamOptionsの引数

引数 説明

hstmt

SQLHSTMT

文ハンドル

crow

SQLULEN

各パラメータの値の数

pirow

SQLULEN

現在の行番号の記憶域へのポインタ

crow値が1より大きく、SQLBindParameterrgbValue引数がパラメータ値の配列を指し、pcbValue引数が長さの配列を指すと想定しています。(「SQLBindParameter関数」も参照してください。)

バッチ処理の完全な動作例は、TimesTen Classicクイック・スタートで、ソース・ファイルbulkinsert.cを参照してください。(TTClassesを使用したC++でのプログラミングについては、bulktest.cppも参照してください。)「TimesTenクイック・スタートおよびサンプル・アプリケーションについて」を参照してください。

ノート:

SQLParamOptionsをTimesTenクライアント/サーバー・ドライバとともに使用する場合、実行時データのパラメータはサポートされません。(アプリケーションは、SQLBindParameter rgbValueバッファで、またはSQLPutDataの1回以上のコールで、パラメータの値を渡すことができます。SQLPutDataとともにデータが渡されるパラメータは、実行時データ・パラメータといいます。これらは一般に、SQL_LONGVARBINARYおよびSQL_LONGVARCHARパラメータのデータを送信するために使用され、その他のパラメータと混在することができます。)