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 サーバ - データベース管理 » データベースの設定 » データベース・オプション » データベース・オプションの概要 » アルファベット順のオプション・リスト

 

prefetch オプション [データベース]

クライアント・アプリケーションで使用できるようになる前に、ローがクライアント側にフェッチされるかどうかを制御します。

指定可能な値

Off、Conditional、Always

デフォルト

Conditional

スコープ

個々の接続または PUBLIC グループに設定できます。すぐに有効になります。

備考

このオプションは、クライアント・アプリケーションで使用できるようになる前に、ローがクライアント・サイドにフェッチされるかどうかを制御します。一度に複数のローをフェッチすると、クライアント・アプリケーションが一度に 1 つずつローを要求した場合 (カーソルのローをループする場合など) でも、応答時間が短縮され、データベースへの要求数の減少によって全体的なスループットも向上します。

  • Off はプリフェッチが行われないことを意味します。

  • Conditional (デフォルト) の場合は、カーソル・タイプが SENSITIVE か、クエリにプロキシ・テーブルが含まれないかぎり、プリフェッチが発生します。

  • Always は、SENSITIVE タイプのカーソルの場合も、プロキシ・テーブルが関連するカーソルの場合も、プリフェッチが行われることを意味します。

Always は、一部のカーソルのセマンティックに影響するため、注意して使用してください。たとえば、SENSITIVE タイプのカーソルが ASENSITIVE タイプになる場合があります。また、プリフェッチと、アプリケーションのフェッチ要求の間に値が更新された場合は、古い値がフェッチされることがあります。さらに、プロキシ・テーブルが関連するカーソルでプリフェッチを使用した場合、クライアントがプリフェッチ・ローを再フェッチしようとすると、エラー -668「カーソルは FETCH NEXT 操作に制限されています」が発生する可能性があります。最初のフェッチの後で、初めてフェッチ・カラムが再バインドまたはバインドされた場合、クライアントは、ロールバックの後、または 0 の相対フェッチ時、あるいは場合によっては GET DATA が使用されるときに、プリフェッチ・ローを再フェッチしようとすることがあります。

value-sensitive カーソル・タイプには、ESQL SENSITIVE と SCROLL カーソル・タイプ、ODBC と OLE DB DYNAMIC および KEYSET カーソル・タイプが含まれます。

prefetch オプションの設定は、Open Client 接続と jConnect 接続では無視されます。

DisableMultiRowFetch 接続パラメータが YES に設定されている場合、prefetch データベース オプションは無視され、プリフェッチは行われません。

このオプションでは、以前は On も有効な値でした。この値は現在は Conditional のエイリアスです。

参照