ALTER RESOURCE GOVERNOR (Transact-SQL)

適用対象: SQL Server (サポートされているすべてのバージョン)

このステートメントは、SQL Server で次のリソース ガバナー操作を実行するために使用します。

  • CREATE|ALTER|DROP WORKLOAD GROUP、CREATE|ALTER|DROP RESOURCE POOL、または CREATE|ALTER|DROP EXTERNAL RESOURCE POOL ステートメントの実行時に指定した構成の変更の適用

  • Resource Governor の有効化と無効化

  • 受信要求の分類の構成

  • ワークロード グループ統計とリソース プール統計のリセット

  • ディスク ボリュームごとの最大 I/O 操作数の設定

Topic link iconTransact-SQL 構文表記規則

構文

ALTER RESOURCE GOVERNOR   
      { DISABLE | RECONFIGURE }  
    | WITH ( CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } )  
    | RESET STATISTICS  
    | WITH ( MAX_OUTSTANDING_IO_PER_VOLUME = value )   
[ ; ]  

Note

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

DISABLE
Resource Governor を無効にします。 Resource Governor を無効にすると、結果は次のようになります。

  • 分類関数は実行されません。

  • すべての新しい接続が、既定のグループに自動的に分類されます。

  • システムによって開始される要求は、内部ワークロード グループに分類されます。

  • ワークロード グループとリソース プールの既存の設定は、すべて既定値にリセットされます。 この場合、制限に達してもイベントは発生しません。

  • 通常のシステム監視は影響を受けません。

  • 構成は変更できますが、Resource Governor を有効にするまで変更は反映されません。

  • SQL Server の再起動時に、リソース ガバナーはその構成を読み込みません。このとき、既定および内部のグループとプールのみが存在します。

RECONFIGURE
リソース ガバナーが有効でない場合、RECONFIGURE でリソース ガバナーを有効にします。 リソース ガバナーを有効にすると、結果は次のようになります。

  • ワークロードがワークロード グループに割り当てられるように、新しい接続に対して分類関数が実行されます。

  • リソース ガバナー構成で指定されているリソース制限が有効になり適用されます。

  • リソース ガバナーを有効にする前に存在していた要求に、リソース ガバナーが無効であったときに加えた構成の変更が反映されます。

リソース ガバナーの実行中に、CREATE|ALTER|DROP WORKLOAD GROUP、CREATE|ALTER|DROP RESOURCE POOL、または CREATE|ALTER|DROP EXTERNAL RESOURCE POOL ステートメントの実行時に要求された構成の変更が適用されます。

重要

構成の変更を有効にするには、ALTER RESOURCE GOVERNOR RECONFIGURE を発行する必要があります。

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }
schema_name.function_name で指定された分類関数を登録します。 この関数によってすべての新しいセッションが分類され、セッションの要求とクエリがワークロード グループに割り当てられます。 NULL を使用すると、新しいセッションは既定のワークロード グループに自動的に割り当てられます。

RESET STATISTICS
すべてのワークロード グループとリソース プールの統計をリセットします。 詳細については、「sys.dm_resource_governor_workload_groups (Transact-SQL)」および「sys.dm_resource_governor_resource_pools (Transact-SQL)」を参照してください。

MAX_OUTSTANDING_IO_PER_VOLUME = value
適用対象: SQL Server 2014 (12.x) 以降。

キューに登録される I/O 操作のディスク ボリュームごとの最大数を設定します。 これらの I/O 操作では、任意のサイズの読み取りや書き込みを行うことができます。 MAX_OUTSTANDING_IO_PER_VOLUME の最大値は 100 です。 これはパーセントではありません。 この設定は、ディスク ボリュームの IO 特性に合わせて IO リソース管理をチューニングするために設計されています。 さまざまな値をテストすることをお勧めするとともに、ストレージ サブシステムの最大値を識別するために、IOMeter、DiskSpd、SQLIO (非推奨) などの調整ツールの使用を検討することをお勧めします。 この設定では、システム レベルの安全性チェックが提供され、他のプールで MAX_IOPS_PER_VOLUME が無制限に設定されている場合でも、SQL Server でリソース プールの最小 IOPS を満たすことができます。 MAX_IOPS_PER_VOLUME の詳細については、「CREATE RESOURCE POOL」を参照してください。

注釈

ALTER RESOURCE GOVERNOR DISABLE、ALTER RESOURCE GOVERNOR RECONFIGURE、および ALTER RESOURCE GOVERNOR RESET STATISTICS は、ユーザー トランザクション内で使用できません。

RECONFIGURE パラメーターはリソース ガバナー構文の一部であり、個別の DDL ステートメントである RECONFIGURE とは異なります。

DDL ステートメントを実行する前に、リソース ガバナーの状態について詳しく理解しておくことをお勧めします。 詳細については、「リソース ガバナー」を参照してください。

アクセス許可

CONTROL SERVER 権限が必要です。

A. Resource Governor を起動する

SQL Server の最初のインストール時には、リソース ガバナーは無効になっています。 Resource Governor を起動する例を次に示します。 このステートメントを実行した後、Resource Governor が実行され、定義済みのワークロード グループとリソース プールを使用できるようになります。

ALTER RESOURCE GOVERNOR RECONFIGURE;  

B. 新しいセッションを既定のグループに割り当てる

次の例では、Resource Governor 構成から既存の分類関数を削除することによって、すべての新しいセッションを既定のワークロード グループに割り当てます。 関数が分類関数として指定されていない場合、新しいセッションはすべて既定のワークロード グループに割り当てられます。 この変更は新しいセッションにのみ適用されます。 既存のセッションは影響を受けません。

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  

C. 分類関数を作成して登録する

次の例では、dbo.rgclassifier_v1 という名前の分類子関数を作成します。 この関数によって、ユーザー名またはアプリケーション名に基づいてすべての新しいセッションが分類され、セッションの要求とクエリが、指定されたワークロード グループに割り当てられます。 指定されたユーザー名またはアプリケーション名にマップされていないセッションは、既定のワークロード グループに割り当てられます。 次に分類関数が登録され、構成の変更が適用されます。

-- Store the classifier function in the master database.  
USE master;  
GO  
SET ANSI_NULLS ON;  
GO  
SET QUOTED_IDENTIFIER ON;  
GO  
CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname   
WITH SCHEMABINDING  
AS  
BEGIN  
-- Declare the variable to hold the value returned in sysname.  
    DECLARE @grp_name AS sysname  
-- If the user login is 'sa', map the connection to the groupAdmin  
-- workload group.   
    IF (SUSER_NAME() = 'sa')  
        SET @grp_name = 'groupAdmin'  
-- Use application information to map the connection to the groupAdhoc  
-- workload group.  
    ELSE IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')  
        OR (APP_NAME() LIKE '%QUERY ANALYZER%')  
            SET @grp_name = 'groupAdhoc'  
-- If the application is for reporting, map the connection to  
-- the groupReports workload group.  
    ELSE IF (APP_NAME() LIKE '%REPORT SERVER%')  
        SET @grp_name = 'groupReports'  
-- If the connection does not map to any of the previous groups,  
-- put the connection into the default workload group.  
    ELSE  
        SET @grp_name = 'default'  
    RETURN @grp_name  
END;  
GO  
-- Register the classifier user-defined function and update the   
-- the in-memory configuration.  
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=dbo.rgclassifier_v1);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

D. 統計をリセットする

次の例では、すべてのワークロード グループとリソース プールの統計をリセットします。

ALTER RESOURCE GOVERNOR RESET STATISTICS;  

E. MAX_OUTSTANDING_IO_PER_VOLUME オプションを設定する

次の例では、MAX_OUTSTANDING_IO_PER_VOLUME オプションが 20 に設定されます。

ALTER RESOURCE GOVERNOR  
WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);   

関連項目

CREATE RESOURCE POOL (Transact-SQL)
ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE EXTERNAL RESOURCE POOL (Transact-SQL)
DROP EXTERNAL RESOURCE POOL (Transact-SQL)
ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
リソース ガバナー
sys.dm_resource_governor_workload_groups (Transact-SQL)
sys.dm_resource_governor_resource_pools (Transact-SQL)