ALTER RESOURCE GOVERNOR (Transact-SQL)ALTER RESOURCE GOVERNOR (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

このステートメントは、SQL ServerSQL Server で次のリソース ガバナー操作を実行するために使用します。This statement is used to perform the following Resource Governor actions in SQL ServerSQL Server:

  • CREATE|ALTER|DROP WORKLOAD GROUP、CREATE|ALTER|DROP RESOURCE POOL、または CREATE|ALTER|DROP EXTERNAL RESOURCE POOL ステートメントの実行時に指定した構成の変更の適用Apply the configuration changes specified when the CREATE|ALTER|DROP WORKLOAD GROUP or CREATE|ALTER|DROP RESOURCE POOL or CREATE|ALTER|DROP EXTERNAL RESOURCE POOL statements are issued.

  • Resource Governor の有効化と無効化Enable or disable Resource Governor.

  • 受信要求の分類の構成Configure classification for incoming requests.

  • ワークロード グループ統計とリソース プール統計のリセットReset workload group and resource pool statistics.

  • ディスク ボリュームごとの最大 I/O 操作数の設定Sets the maximum I/O operations per disk volume.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

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

引数Arguments

DISABLEDISABLE
Resource Governor を無効にします。Disables Resource Governor. Resource Governor を無効にすると、結果は次のようになります。Disabling Resource Governor has the following results:

  • 分類関数は実行されません。The classifier function is not executed.

  • すべての新しい接続が、既定のグループに自動的に分類されます。All new connections are automatically classified into the default group.

  • システムによって開始される要求は、内部ワークロード グループに分類されます。System-initiated requests are classified into the internal workload group.

  • ワークロード グループとリソース プールの既存の設定は、すべて既定値にリセットされます。All existing workload group and resource pool settings are reset to their default values. この場合、制限に達してもイベントは発生しません。In this case, no events are fired when limits are reached.

  • 通常のシステム監視は影響を受けません。Normal system monitoring is not affected.

  • 構成は変更できますが、Resource Governor を有効にするまで変更は反映されません。Configuration changes can be made, but the changes do not take effect until Resource Governor is enabled.

  • SQL ServerSQL Server の再起動時に、リソース ガバナーはその構成を読み込みません。このとき、既定および内部のグループとプールのみが存在します。Upon restarting SQL ServerSQL Server, the Resource Governor will not load its configuration, but instead will have only the default and internal groups and pools.

RECONFIGURERECONFIGURE
リソース ガバナーが有効でない場合、RECONFIGURE でリソース ガバナーを有効にします。When the Resource Governor is not enabled, RECONFIGURE enables the Resource Governor. リソース ガバナーを有効にすると、結果は次のようになります。Enabling Resource Governor has the following results:

  • ワークロードがワークロード グループに割り当てられるように、新しい接続に対して分類関数が実行されます。The classifier function is executed for new connections so that their workload can be assigned to workload groups.

  • リソース ガバナー構成で指定されているリソース制限が有効になり適用されます。The resource limits that are specified in the Resource Governor configuration are honored and enforced.

  • リソース ガバナーを有効にする前に存在していた要求に、リソース ガバナーが無効であったときに加えた構成の変更が反映されます。Requests that existed before enabling Resource Governor are affected by any configuration changes that were made when Resource Governor was disabled.

リソース ガバナーの実行中に、CREATE|ALTER|DROP WORKLOAD GROUP、CREATE|ALTER|DROP RESOURCE POOL、または CREATE|ALTER|DROP EXTERNAL RESOURCE POOL ステートメントの実行時に要求された構成の変更が適用されます。When Resource Governor is running, RECONFIGURE applies any configuration changes requested when the CREATE|ALTER|DROP WORKLOAD GROUP or CREATE|ALTER|DROP RESOURCE POOL or CREATE|ALTER|DROP EXTERNAL RESOURCE POOL statements are executed.

重要

構成の変更を有効にするには、ALTER RESOURCE GOVERNOR RECONFIGURE を発行する必要があります。ALTER RESOURCE GOVERNOR RECONFIGURE must be issued in order for any configuration changes to take effect.

CLASSIFIER_FUNCTION = { schema_name . function_name | NULL }CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }
schema_name.function_name で指定された分類関数を登録します。Registers the classification function specified by schema_name.function_name. この関数によってすべての新しいセッションが分類され、セッションの要求とクエリがワークロード グループに割り当てられます。This function classifies every new session and assigns the session requests and queries to a workload group. NULL を使用すると、新しいセッションは既定のワークロード グループに自動的に割り当てられます。When NULL is used, new sessions are automatically assigned to the default workload group.

RESET STATISTICSRESET STATISTICS
すべてのワークロード グループとリソース プールの統計をリセットします。Resets statistics on all workload groups and resource pools. 詳細については、「sys.dm_resource_governor_workload_groups (Transact-SQL)」と「sys.dm_resource_governor_resource_pools (Transact-SQL)」を参照してください。For more information, see sys.dm_resource_governor_workload_groups (Transact-SQL) and sys.dm_resource_governor_resource_pools (Transact-SQL).

MAX_OUTSTANDING_IO_PER_VOLUME = valueMAX_OUTSTANDING_IO_PER_VOLUME = value
適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) から SQL ServerSQL ServerApplies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL ServerSQL Server.

キューに登録される I/O 操作のディスク ボリュームごとの最大数を設定します。Sets the maximum queued I/O operations per disk volume. これらの I/O 操作では、任意のサイズの読み取りや書き込みを行うことができます。These I/O operations can be reads or writes of any size. MAX_OUTSTANDING_IO_PER_VOLUME の最大値は 100 です。The maximum value for MAX_OUTSTANDING_IO_PER_VOLUME is 100. これはパーセントではありません。It is not a percent. この設定は、ディスク ボリュームの IO 特性に合わせて IO リソース管理をチューニングするために設計されています。This setting is designed to tune IO resource governance to the IO characteristics of a disk volume. さまざまな値をテストし、ストレージ サブシステムの最大値を識別するために IOMeter、DiskSpd、SQLIO (非推奨) などの調整ツールの使用を検討することをお勧めします。We recommend that you experiment with different values and consider using a calibration tool such as IOMeter, DiskSpd, or SQLIO (deprecated) to identify the max value for your storage subsystem. この設定では、システム レベルの安全性チェックが提供され、他のプールで MAX_IOPS_PER_VOLUME が無制限に設定されている場合でも、SQL Server でリソース プールの最小 IOPS を満たすことができます。This setting provides a system-level safety check that allows SQL Server to meet the minimum IOPS for resource pools even if other pools have the MAX_IOPS_PER_VOLUME set to unlimited. MAX_IOPS_PER_VOLUME の詳細については、「CREATE RESOURCE POOL」を参照してください。For more information about MAX_IOPS_PER_VOLUME, see CREATE RESOURCE POOL.

RemarksRemarks

ALTER RESOURCE GOVERNOR DISABLE、ALTER RESOURCE GOVERNOR RECONFIGURE、および ALTER RESOURCE GOVERNOR RESET STATISTICS は、ユーザー トランザクション内で使用できません。ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE, and ALTER RESOURCE GOVERNOR RESET STATISTICS cannot be used inside a user transaction.

RECONFIGURE パラメーターはリソース ガバナー構文の一部であり、個別の DDL ステートメントである RECONFIGURE とは異なります。The RECONFIGURE parameter is part of the Resource Governor syntax and should not be confused with RECONFIGURE, which is a separate DDL statement.

DDL ステートメントを実行する前に、リソース ガバナーの状態について詳しく理解しておくことをお勧めします。We recommend being familiar with Resource Governor states before you execute DDL statements. 詳細については、「リソース ガバナー」を参照してください。For more information, see Resource Governor.

アクセス許可Permissions

CONTROL SERVER 権限が必要です。Requires CONTROL SERVER permission.

使用例Examples

A.A. Resource Governor を起動するStarting the Resource Governor

SQL ServerSQL Server の最初のインストール時には、リソース ガバナーは無効になっています。When SQL ServerSQL Server is first installed Resource Governor is disabled. Resource Governor を起動する例を次に示します。The following example starts Resource Governor. このステートメントを実行した後、Resource Governor が実行され、定義済みのワークロード グループとリソース プールを使用できるようになります。After the statement executes, Resource Governor is running and can use the predefined workload groups and resource pools.

ALTER RESOURCE GOVERNOR RECONFIGURE;  

B.B. 新しいセッションを既定のグループに割り当てるAssigning new sessions to the default group

次の例では、Resource Governor 構成から既存の分類関数を削除することによって、すべての新しいセッションを既定のワークロード グループに割り当てます。The following example assigns all new sessions to the default workload group by removing any existing classifier function from the Resource Governor configuration. 関数が分類関数として指定されていない場合、新しいセッションはすべて既定のワークロード グループに割り当てられます。When no function is designated as a classifier function, all new sessions are assigned to the default workload group. この変更は新しいセッションにのみ適用されます。This change applies to new sessions only. 既存のセッションは影響を受けません。Existing sessions are not affected.

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

C.C. 分類関数を作成して登録するCreating and registering a classifier function

次の例では、dbo.rgclassifier_v1 という名前の分類子関数を作成します。The following example creates a classifier function named dbo.rgclassifier_v1. この関数によって、ユーザー名またはアプリケーション名に基づいてすべての新しいセッションが分類され、セッションの要求とクエリが、指定されたワークロード グループに割り当てられます。The function classifies every new session based on either the user name or application name and assigns the session requests and queries to a specific workload group. 指定されたユーザー名またはアプリケーション名にマップされていないセッションは、既定のワークロード グループに割り当てられます。Sessions that do not map to the specified user or application names are assigned to the default workload group. 次に分類関数が登録され、構成の変更が適用されます。The classifier function is then registered and the configuration change is applied.

-- 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.D. 統計をリセットするResetting Statistics

次の例では、すべてのワークロード グループとリソース プールの統計をリセットします。The following example resets all workload group and resource pool statistics.

ALTER RESOURCE GOVERNOR RESET STATISTICS;  

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

次の例では、MAX_OUTSTANDING_IO_PER_VOLUME オプションが 20 に設定されます。The following example set the MAX_OUTSTANDING_IO_PER_VOLUME option to 20.

ALTER RESOURCE GOVERNOR  
WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);   

参照See Also

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