Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー プログラミング » アプリケーションでの SQL の使用 » SQL Anywhere のカーソル

 

カーソルの感知性とパフォーマンス

カーソルのパフォーマンスとその他のプロパティの間には、トレードオフ関係があります。特に、カーソルを更新できるようにした場合は、カーソルによるクエリの処理と配信で、パフォーマンスを制約する制限事項が課されます。また、カーソル感知性に稼働条件を設けると、カーソルのパフォーマンスが制約されることがあります。

カーソルの更新可能性と感知性がパフォーマンスに影響を与える仕組みを理解するには、カーソルによって表示される結果がどのようにしてデータベースからクライアントアプリケーションまで送信されるかを理解する必要があります。

特に、パフォーマンス上の理由から、結果が中間の 2 つのロケーションに格納されることを理解する必要があります。

  • ワークテーブル   中間結果または最終結果はワークテーブルとして保管されます。value-sensitive カーソルは、プライマリキー値のワークテーブルを使用します。また、クエリの特性によって、オプティマイザーが選択した実行プランでワークテーブルを使用するようになります。

  • プリフェッチ   クライアント側の通信はローを取り出してクライアント側のバッファーに格納することで、データベースサーバーに対するローごとの個別の要求を回避します。

クライアントアプリケーションの ODBC ドライバーに格納されたプリフェッチ済みローを示すアーキテクチャー図。

感知性と更新可能性は中間のロケーションの使用を制限します。


プリフェッチ
更新内容の消失