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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere でのプログラミングの概要 » アプリケーションでの SQL の使用 » SQL Anywhere のカーソル

 

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

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

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

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

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

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

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

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


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