文を複数回実行する場合は、SQLPrepareを使用して文を事前に準備します。準備した文が、準備によって保持されたロックを解放し、問合せ計画を持続するためにコミットされていることを確認してください。コマンドを事前に準備する方法については、ODBCのドキュメントを参照してください。
同じ文を複数回生成し、その生成のたびに異なる値を検索するアプリケーションが存在する場合は、パラメータ化した文を使用して、コンパイル時間を減らします。たとえば、アプリケーションで次のような文が生成されるとします。
SELECT A FROM B WHERE C = 10 SELECT A FROM B WHERE C = 15これらの文は、次の単一の文に置き換えることができます。
SELECT A FROM B WHERE C = ?
TimesTenは、コミットされると自動的に準備済のコマンドを共有します。したがって、コマンドの実行を準備するためのアプリケーションによるリクエストは、準備済バージョンのコマンドがすでにシステムに存在する場合は非常に高速に処理されます。また、同じコマンドのSQLExecDirectに対して繰り返しリクエストを行う場合は、事前準備済バージョンのコマンドを共有することによって、準備によるオーバーヘッドを回避できる場合があります。
TimesTenで準備済のコマンドを共有できる場合でも、パフォーマンス上の理由から、パラメータ化されたコマンドを使用することをお薦めします。パラメータ化されたコマンドを使用すると、コマンドの共有によって実行できる処理での準備で発生するオーバーヘッドを軽減できます。