query governor cost limit (サーバー構成オプション) の構成

適用対象:SQL Server

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server の query governor cost limit サーバー構成オプションを構成する方法について説明します。 コスト制限オプションでは、実行する特定のクエリに許容される推定コストの上限を指定します。 クエリ コストは、CPU 時間、メモリ、ディスク IO などの推定実行要件に基づいて、クエリ オプティマイザーによって決定される抽象的な値です。 それは、特定のハードウェア構成でクエリを完了するために必要とされる予測所要時間を秒単位で表しています。 この抽象的な値は、実行中のインスタンスでクエリを完了するために必要な時間とは異なります。 相対的なメジャーとして扱う必要があります。 このオプションの既定値は 0 です。クエリ ガバナーはオフに設定されます。 値を 0 に設定すると、すべてのクエリは時間制限なしで実行することが許可されます。 0 以外の正の値を指定すると、クエリ ガバナーは、見積コストがこの値を超えるクエリの実行を許可しません。

このトピックの内容

はじめに

推奨事項

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

  • 接続ごとに query governor cost limit 値を変更するには、 SET QUERY_GOVERNOR_COST_LIMIT ステートメントを使用します。

セキュリティ

アクセス許可

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

SQL Server Management Studio を使用する

query governor cost limit オプションを構成するには

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

  2. [接続] ページをクリックします。

  3. [クエリの実行時間が長くならないようにクエリ ガバナーを使用する] チェック ボックスをオンまたはオフにします。

    このチェック ボックスをオンにした場合、下のボックスに正の値を入力します。任意のクエリの推定コストがその値を超えると、クエリ ガバナーによりクエリの実行が禁止されます。

Transact-SQL の使用

query governor cost limit オプションを構成するには

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

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

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、sp_configure を使用して、query governor cost limit オプションの値を、推定クエリ コストの上限である 120 に設定する方法を示します。

USE AdventureWorks2022;  
GO  
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE ;  
GO  
EXEC sp_configure 'query governor cost limit', 120 ;  
GO  
RECONFIGURE;  
GO  
  

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

補足情報: query governor cost limit オプションを構成した後

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

参照

RECONFIGURE (Transact-SQL)
SET QUERY_GOVERNOR_COST_LIMIT (Transact-SQL)
サーバー構成オプション (SQL Server)
sp_configure (Transact-SQL)