文がデータベースへ送信されるたびに、データベース・サーバは次の手順を実行する必要があります。
文を解析し、内部フォームに変換する。これは文の「準備」とも呼ばれます。
データベース・オブジェクトへの参照がすべて正確であるかどうかを確認する。たとえば、クエリで指定されたカラムが実際に存在するかどうかをチェックします。
文にジョインまたはサブクエリが含まれている場合、クエリ・オプティマイザがアクセス・プランを生成する。
これらすべての手順を実行してから文を実行する。
同じ文を繰り返し使用する (たとえば、1 つのテーブルに多くのローを挿入する) 場合、文の準備を繰り返し行うことにより著しいオーバヘッドが生じます。このオーバヘッドを解消するため、データベース・プログラミング・インタフェースによっては、準備文の使用方法を提示するものもあります。「準備文」とは、一連のプレースホルダを含む文です。文を実行するときに、文全体を何度も準備しなくても、プレースホルダに値を割り当てるだけで済みます。
たくさんのローを挿入するときなど、同じ動作を何度も繰り返す場合は、準備文を使用すると特に便利です。
通常、準備文を使用するには次の手順が必要です。
「文を準備する」
ここでは通常、値の代りにプレースホルダを文に入力します。
「準備文を繰り返し実行する」
ここでは、文を実行するたびに、使用する値を入力します。実行するたびに文を準備する必要ありません。
「文を削除する」
ここでは、準備文に関連付けられたリソースを解放します。この手順を自動的に処理するプログラミング・インタフェースもあります。
通常、一度だけの実行には文を準備しません。準備と実行を別々に行うと、わずかではあってもパフォーマンス・ペナルティが生じ、アプリケーションに不要な煩雑さを招きます。
ただし、インタフェースによっては、カーソルに関連付けするためだけに文を準備する必要があります。
カーソルについては、カーソルの概要を参照してください。
文の準備と実行命令の呼び出しは SQL の一部ではなく、インタフェースによって異なります。SQL Anywhere の各プログラミング・インタフェースによって、準備文を使用する方法が示されます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |