cursor threshold オプション

cursor threshold オプションは、カーソル キーセットが非同期に生成される際の基準となる、カーソル セットの行数を指定する場合に使用します。カーソルが結果セットのキーセットを生成するとき、その結果セットに返される行数をクエリ オプティマイザが予測します。クエリ オプティマイザによって、返される行数がこのしきい値を超えていると予測された場合、カーソルが非同期に生成されます。これにより、カーソルの作成が続行されている間に、ユーザーはカーソルから行をフェッチできます。返される行数がこのしきい値以下と予測された場合、カーソルは同期をとって生成され、すべての行が返されるまでクエリが待機します。

cursor threshold を -1 に設定すると、すべてのキーセットが同期をとって生成されます。これはカーソル セットが小さい場合に役立ちます。cursor threshold を 0 に設定すると、すべてのカーソル キーセットが非同期に生成されます。それ以外の値を設定した場合、クエリ オプティマイザによってカーソル セットの予測行数が比較され、cursor threshold に設定した値を超えていれば、キーセットが非同期に生成されます。小さな結果セットは同期をとって作成する方がよいので、cursor threshold の値は小さくしすぎないでください。

ms189113.note(ja-jp,SQL.90).gifメモ :
SQL Server 2005 では、キーセット ドリブン カーソルまたは静的 Transact-SQL カーソルを非同期に生成することができません。OPEN、FETCH などの Transact-SQL カーソル操作は一括処理されるので、Transact-SQL カーソルを非同期に生成する必要がないためです。各カーソル操作におけるクライアントのラウンド トリップにより、待機時間が少ない OPEN が問題になるような非同期キーセット ドリブン カーソルまたは静的 API (アプリケーション プログラミング インターフェイス) サーバー カーソルは、SQL Server 2005 で引き続きサポートされます。

キーセットの行数を予測するクエリ オプティマイザの精度は、カーソル内の各テーブルの統計の新しさによって左右されます。

cursor threshold オプションは拡張オプションです。sp_configure システム ストアド プロシージャを使用して cursor threshold の設定を変更するには、show advanced options を 1 に設定する必要があります。新しい設定は、サーバーを再起動しなくても直ちに有効になります。

参照

概念

サーバー構成オプションの設定

その他の技術情報

RECONFIGURE (Transact-SQL)
sp_configure (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手