cursor threshold サーバー構成オプションの構成

このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、cursor threshold サーバー構成オプションを構成する方法について説明します。 cursor threshold オプションは、カーソル キーセットが非同期に生成されるカーソル セット内の行数を指定します。 カーソルが結果セットのキーセットを生成するとき、その結果セットに返される行数をクエリ オプティマイザーが予測します。 返される行数がこのしきい値を超えていると予測された場合、カーソルは非同期に生成されます。これにより、ユーザーはカーソルの作成が続行されている間に行を取り出すことができます。 返される行数がこのしきい値以下と予測された場合、カーソルは同期をとって生成され、すべての行が返されるまでクエリが待機します。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    推奨事項

    セキュリティ

  • 以下を使用して cursor threshold オプションを構成するには

    SQL Server Management Studio

    Transact-SQL

  • 補足情報: cursor threshold オプションを構成した後

作業を開始する準備

制限事項と制約事項

  • SQL Server では、キーセット ドリブン カーソルまたは静的 Transact-SQL カーソルの非同期な作成はサポートされません。 OPEN や FETCH などの Transact-SQL カーソル操作はバッチで行われます。したがって、Transact-SQL カーソルを非同期に生成する必要はありません。 各カーソル操作におけるクライアントのラウンド トリップのため、待機時間が少ない OPEN が問題になるような非同期キーセット ドリブン カーソルまたは静的 API (アプリケーション プログラミング インターフェイス) サーバー カーソルは、SQL Server で引き続きサポートされます。

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

推奨事項

  • このオプションは詳細設定オプションであるため、熟練したデータベース管理者または認定された SQL Server 技術者だけが変更するようにしてください。

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

セキュリティ

権限

パラメーターなしで、または最初のパラメーターだけを指定して sp_configure を実行する権限は、既定ですべてのユーザーに付与されます。 両方のパラメーターを指定した sp_configure を実行して構成オプションを変更したり RECONFIGURE ステートメントを実行したりするには、ALTER SETTINGS サーバーレベル権限がユーザーに付与されている必要があります。 ALTER SETTINGS 権限は、sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは暗黙のうちに付与されています。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

cursor threshold オプションを設定するには

  1. オブジェクト エクスプローラーで、サーバーを右クリックし、[プロパティ] をクリックします。

  2. [詳細設定] ノードをクリックします。

  3. [その他][カーソルのしきい値] オプションを目的の値に変更します。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

cursor threshold オプションを設定するには

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 この例では、sp_configure を使用して cursor threshold オプションを 0 に設定して、カーソル キーセットが非同期に生成されるようにする方法を示します。

USE AdventureWorks2012 ;
GO
EXEC sp_configure 'show advanced options', 1 ;
GO
RECONFIGURE
GO
EXEC sp_configure 'cursor threshold', 0 ;
GO
RECONFIGURE
GO

詳細については、「サーバー構成オプション」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]

補足情報: cursor threshold オプションを構成した後

新しい設定は、サーバーを再起動しなくてもすぐに有効になります。

[トップに戻る] リンクで使用される矢印アイコン[Top]

関連項目

参照

@@CURSOR_ROWS (Transact-SQL)

RECONFIGURE (Transact-SQL)

sp_configure (Transact-SQL)

UPDATE STATISTICS (Transact-SQL)

概念

サーバー構成オプション