ALTER WORKLOAD GROUP (Transact-SQL)ALTER WORKLOAD GROUP (Transact-SQL)

製品を選択するSelect a product

次の行で、興味のある製品の名前を選択します。その製品の情報だけが表示されます。In the following row, select the product name you're interested in, and only that product’s information is displayed.

* SQL Server *  * SQL Server *  

 

SQL Server と SQL Managed InstanceSQL Server and SQL Managed Instance

既存の Resource Governor ワークロード グループの構成を変更します。必要に応じて、そのワークロード グループを Resource Governor リソース プールに割り当てることもできます。Changes an existing Resource Governor workload group configuration, and optionally assigns it to a Resource Governor resource pool.

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

構文Syntax

ALTER WORKLOAD GROUP { group_name | "default" }  
[ WITH  
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]  
      [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]  
      [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]  
      [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]   
      [ [ , ] MAX_DOP = value ]  
      [ [ , ] GROUP_MAX_REQUESTS = value ] )  
 ]  
[ USING { pool_name | "default" } ]  
[ ; ]  

引数Arguments

group_name | "default"group_name | "default"
既存のユーザー定義のワークロード グループの名前か、リソース ガバナーの既定のワークロード グループを指定します。Is the name of an existing user-defined workload group or the Resource Governor default workload group.

注意

SQL ServerSQL Server のインストール時に、リソース ガバナーにより "既定の" グループと内部のグループが作成されます。Resource Governor creates the "default" and internal groups when SQL ServerSQL Server is installed.

オプションの "default" を ALTER WORKLOAD GROUP で使用する場合は、システム予約語の DEFAULT と競合しないように引用符 ("") または角かっこ ([]) で囲む必要があります。The option "default" must be enclosed by quotation marks ("") or brackets ([]) when used with ALTER WORKLOAD GROUP to avoid conflict with DEFAULT, which is a system reserved word. 詳細については、「データベース識別子」を参照してください。For more information, see Database Identifiers.

注意

定義済みのワークロード グループおよびリソース プールはすべて、"default" などの小文字の名前を使用しています。Predefined workload groups and resource pools all use lowercase names, such as "default". 大文字と小文字を区別する照合順序を使用するサーバーでは、これを考慮する必要があります。This should be taken into account for servers that use case-sensitive collation. SQL_Latin1_General_CP1_CI_AS など、大文字と小文字を区別しない照合順序を使用するサーバーでは、"default" と "Default" が同じものと見なされます。Servers with case-insensitive collation, such as SQL_Latin1_General_CP1_CI_AS, will treat "default" and "Default" as the same.

IMPORTANCE = { LOW | MEDIUM | HIGH }IMPORTANCE = { LOW | MEDIUM | HIGH }
ワークロード グループでの要求の相対的な重要度を指定します。Specifies the relative importance of a request in the workload group. 重要度は次のいずれかです。Importance is one of the following:

  • LOWLOW
  • MEDIUM (既定)MEDIUM (default)
  • HIGHHIGH

注意

各重要度の設定は、内部に計算用の数値として格納されます。Internally each importance setting is stored as a number that is used for calculations.

IMPORTANCE は、リソース プールに対してローカルです。同じリソース プール内の異なる重要度のワークロード グループは互いに影響しますが、別のリソース プールのワークロード グループには影響しません。IMPORTANCE is local to the resource pool; workload groups of different importance inside the same resource pool affect each other, but do not affect workload groups in another resource pool.

REQUEST_MAX_MEMORY_GRANT_PERCENT = value REQUEST_MAX_MEMORY_GRANT_PERCENT = value
1 つの要求にプールから割り当てられる最大メモリ量を指定します。Specifies the maximum amount of memory that a single request can take from the pool. value は、MAX_MEMORY_PERCENT で指定したリソース プールのサイズが基準になります。value is a percentage relative to the resource pool size specified by MAX_MEMORY_PERCENT.

valueSQL Server 2017 (14.x)SQL Server 2017 (14.x) までの整数と SQL Server 2019 (15.x)SQL Server 2019 (15.x) で始まる float です。value is an integer up to SQL Server 2017 (14.x)SQL Server 2017 (14.x) and a float starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x). 既定値は 25 です。Default value is 25. value の許容範囲は 1 ~ 100 です。The allowed range for value is from 1 through 100.

注意

指定した量のみがクエリの実行時に許可されるメモリとして割り当てられます。The amount specified only refers to query execution grant memory.

重要

value を 0 に設定すると、ユーザー定義のワークロード グループでは SORT と HASH JOIN 操作を含むクエリが実行されなくなります。Setting value to 0 prevents queries with SORT and HASH JOIN operations in user-defined workload groups from running.

同時に他のクエリが実行されているとサーバーが空きメモリを十分に確保できない可能性があるため、value を 70 より大きな値に設定することはお勧めしません。It is not recommended to set value greater than 70 because the server may be unable to set aside enough free memory if other concurrent queries are running. これによってやがては、クエリの時間切れエラー 8645 が発生します。This may eventually lead to query time-out error 8645.

注意

クエリのメモリ要求がこのパラメーターによって指定されている制限を超えると、サーバーは次のように対応します。If the query memory requirements exceed the limit that is specified by this parameter, the server does the following:

  • ユーザー定義のワークロード グループでは、メモリ要求が制限より低くなるか、並列処理の次数が 1 になるまで、サーバーはクエリの並列処理の次数を下げます。For user-defined workload groups, the server tries to reduce the query degree of parallelism until the memory requirement falls under the limit, or until the degree of parallelism equals 1. それでもクエリのメモリ要求が制限を超える場合は、エラー 8657 が発生します。If the query memory requirement is still greater than the limit, error 8657 occurs.

  • 内部および既定のワークロード グループでは、そのクエリに必要なメモリの確保がサーバーによって許可されます。For internal and default workload groups, the server permits the query to obtain the required memory.

サーバーに十分な物理メモリがない場合は、どちらの場合も時間切れエラー 8645 が発生する可能性があります。Be aware that both cases are subject to time-out error 8645 if the server has insufficient physical memory.

REQUEST_MAX_CPU_TIME_SEC = value REQUEST_MAX_CPU_TIME_SEC = value
要求が使用できる最大 CPU 時間を秒単位で指定します。Specifies the maximum amount of CPU time, in seconds, that a request can use. value は、0 または正の整数にする必要があります。value must be 0 or a positive integer. value の既定の設定が 0 の場合は、無制限を示します。The default setting for value is 0, which means unlimited.

注意

既定では、リソース ガバナーでは最大時間を超過しても、要求は継続されます。By default, Resource Governor will not prevent a request from continuing if the maximum time is exceeded. ただし、イベントが生成されます。However, an event will be generated. 詳細については、「CPU Threshold Exceeded イベント クラス」を参照してください。For more information, see CPU Threshold Exceeded Event Class.

重要

SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 および SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU3 以降では、トレース フラグ 2422 を使用すると、最大時間を超えたときにリソース ガバナーが要求を中止します。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU3, and using trace flag 2422, Resource Governor will abort a request when the maximum time is exceeded.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC =valueREQUEST_MEMORY_GRANT_TIMEOUT_SEC =value
メモリ許可 (作業バッファー メモリ) が使用可能になるのをクエリが待機できる最大時間を秒単位で指定します。Specifies the maximum time, in seconds, that a query can wait for memory grant (work buffer memory) to become available.

注意

メモリ許可のタイムアウトに達しても、常にクエリが失敗するとは限りません。A query does not always fail when memory grant time-out is reached. クエリが失敗するのは、同時実行クエリ数が多すぎる場合だけです。A query will only fail if there are too many concurrent queries running. それ以外の場合、クエリは最小限のメモリ許可しか取得できないので、クエリのパフォーマンスが低下します。Otherwise, the query may only get the minimum memory grant, resulting in reduced query performance.

value は正の整数である必要があります。value must be a positive integer. value の既定の設定である 0 の場合、クエリ コストに基づく内部の計算を使用して、最大時間が決定されます。The default setting for value, 0, uses an internal calculation based on query cost to determine the maximum time.

MAX_DOP =value MAX_DOP =value
並列要求の最大 DOP (並列処理の次数) を指定します。Specifies the maximum degree of parallelism (DOP) for parallel requests. value は 0 または正の整数 (1 から 255) にする必要があります。value must be 0 or a positive integer, 1 though 255. value が 0 の場合、サーバーは並列処理の最大限度を選択します。When value is 0, the server chooses the max degree of parallelism. これは既定の推奨設定です。This is the default and recommended setting.

注意

データベース エンジンDatabase Engineによって MAX_DOP に設定される実際の値は、指定された値よりも小さくなる場合があります。The actual value that the データベース エンジンDatabase Engine sets for MAX_DOP by might be less than the specified value. 最終的な値は、min(255, number of CPUs) という式で決定されます。The final value is determined by the formula min(255, number of CPUs).

注意事項

MAX_DOP を変更すると、サーバーのパフォーマンスが低下することがあります。Changing MAX_DOP can adversely affect a server's performance. MAX_DOP を変更する必要がある場合には、1 つの NUMA ノードで示されているハードウェア スケジューラの最大数以下の値に設定することをお勧めします。If you must change MAX_DOP, we recommend that it be set to a value that is less than or equal to the maximum number of hardware schedulers that are present in a single NUMA node. MAX_DOP に 8 よりも大きな値を設定することはお勧めできません。We recommend that you do not set MAX_DOP to a value greater than 8.

MAX_DOP は次のように処理されます。MAX_DOP is handled as follows:

  • ワークロード グループの MAX_DOP を超えない限り、クエリ ヒントとしての MAX_DOP が有効になります。MAX_DOP as a query hint is honored as long as it does not exceed workload group MAX_DOP.

  • クエリ ヒントとしての MAX_DOP は、sp_configure の 'max degree of parallelism' を常にオーバーライドします。MAX_DOP as a query hint always overrides sp_configure 'max degree of parallelism'.

  • ワークロード グループの MAX_DOP は、sp_configure の 'max degree of parallelism' をオーバーライドします。Workload group MAX_DOP overrides sp_configure 'max degree of parallelism'.

  • コンパイル時にクエリが直列 (MAX_DOP = 1) としてマークされている場合は、ワークロード グループまたは sp_configure の設定にかかわらず、実行時に並列に変更することはできません。If the query is marked as serial (MAX_DOP = 1) at compile time, it cannot be changed back to parallel at run time regardless of the workload group or sp_configure setting.

DOP は、構成した後、許可メモリの不足時にのみ低くすることができます。After DOP is configured, it can only be lowered on grant memory pressure. ワークロード グループの再構成は、許可メモリ キューで待機している間は認識されません。Workload group reconfiguration is not visible while waiting in the grant memory queue.

GROUP_MAX_REQUESTS = value GROUP_MAX_REQUESTS = value
ワークロード グループで実行を許可する同時要求の最大数を指定します。Specifies the maximum number of simultaneous requests that are allowed to execute in the workload group. value は、0 または正の整数にする必要があります。value must be 0 or a positive integer. value の既定の設定である 0 の場合、無制限の要求が許可されます。The default setting for value, 0, allows unlimited requests. 同時要求の最大数に達した場合、そのグループのユーザーはログインできますが、同時要求数が指定した値を下回るまで待機状態になります。When the maximum concurrent requests are reached, a user in that group can log in, but is placed in a wait state until concurrent requests are dropped below the value specified.

USING { pool_name | "default" }USING { pool_name | "default" }
ワークロード グループを pool_name で識別されるユーザー定義のリソース プールに関連付けます。実質的には、これによってワークロード グループがリソース プールに配置されます。Associates the workload group with the user-defined resource pool identified by pool_name, which in effect puts the workload group in the resource pool. pool_name を指定していない場合、または USING 引数を使用していない場合、ワークロード グループは事前に定義されたリソース ガバナーの既定のプールに配置されます。If pool_name is not provided or if the USING argument is not used, the workload group is put in the predefined Resource Governor default pool.

オプションの "default" を ALTER WORKLOAD GROUP で使用する場合は、システム予約語の DEFAULT と競合しないように引用符 ("") または角かっこ ([]) で囲む必要があります。The option "default" must be enclosed by quotation marks ("") or brackets ([]) when used with ALTER WORKLOAD GROUP to avoid conflict with DEFAULT, which is a system reserved word. 詳細については、「データベース識別子」を参照してください。For more information, see Database Identifiers.

注意

オプションの "default" は、大文字と小文字が区別されます。The option "default" is case-sensitive.

解説Remarks

ALTER WORKLOAD GROUP は、既定のグループに対して使用できます。ALTER WORKLOAD GROUP is allowed on the default group.

ワークロード グループの構成の変更は、ALTER RESOURCE GOVERNOR RECONFIGURE を実行しないと有効になりません。Changes to the workload group configuration do not take effect until after ALTER RESOURCE GOVERNOR RECONFIGURE is executed. プランを変更し、設定に影響する場合、新しい設定は、DBCC FREEPROCCACHE (pool_name) の実行後にのみ、前にキャッシュされたプランに反映されます。この pool_name は、ワークロード グループが関連付けられているリソース ガバナー リソース プールの名前です。When changing a plan affecting setting, the new setting will only take effect in previously cached plans after executing DBCC FREEPROCCACHE (pool_name), where pool_name is the name of a Resource Governor resource pool on which the workload group is associated with.

  • MAX_DOP を 1 に変更する場合、並列プランは直列モードで実行できるため、DBCC FREEPROCCACHE を実行する必要はありません。If changing MAX_DOP to 1, executing DBCC FREEPROCCACHE is not required because parallel plans can run in serial mode. ただし、直列プランとしてコンパイルされたプランほど効率的ではない可能性があります。However, it may not be as efficient as a plan compiled as a serial plan.

  • MAX_DOP を 1 から 0、または 1 より大きい値に変更する場合、DBCC FREEPROCCACHE を実行する必要はありません。If changing MAX_DOP from 1 to 0 or a value greater than 1, executing DBCC FREEPROCCACHE is not required. ただし、直列プランは並列で実行できません。そのため、個々のキャッシュを消去すると、場合によっては、新しいプランを並列処理でコンパイルできます。However, serial plans cannot run in parallel, so clearing the respective cache will allow new plans to potentially be compiled using parallelism.

注意事項

複数のワークロード グループに関連付けられているリソース プールからキャッシュされているプランを消去すると、ユーザー定義のリソース プールが pool_name で識別されているすべてのワークロード グループに影響します。Clearing cached plans from a resource pool that is associated with more than one workload group will affect all workload groups with the user-defined resource pool identified by pool_name.

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

REQUEST_MEMORY_GRANT_PERCENT:SQL Server 2005 (9.x)SQL Server 2005 (9.x)インデックスの作成では、パフォーマンスの改善のために最初に付与されたのよりも多くのワークスペース メモリを使用することが許可されています。REQUEST_MEMORY_GRANT_PERCENT: In SQL Server 2005 (9.x)SQL Server 2005 (9.x), index creation is allowed to use more workspace memory than initially granted for improved performance. この特別な処理は、今後のバージョンのリソース ガバナーでもサポートされますが、最初のメモリ許可も追加のメモリ許可もリソース プール設定とワークロード グループ設定によって制限されます。This special handling is supported by Resource Governor in later versions, however, the initial grant and any additional memory grant are limited by resource pool and workload group settings.

パーティション テーブルのインデックス作成Index Creation on a Partitioned Table

非固定パーティション テーブルのインデックス作成によって消費されるメモリは、含まれるパーティションの数に比例します。The memory consumed by index creation on non-aligned partitioned table is proportional to the number of partitions involved. 必要なメモリの合計が、リソース ガバナーのワークロード グループの設定によって課せられているクエリごとの制限 (REQUEST_MAX_MEMORY_GRANT_PERCENT) を超えると、インデックス作成の実行に失敗します。If the total required memory exceeds the per-query limit (REQUEST_MAX_MEMORY_GRANT_PERCENT) imposed by the Resource Governor workload group setting, this index creation may fail to execute. "default" ワークロード グループでは、SQL Server 2005 (9.x)SQL Server 2005 (9.x) との互換性のために、クエリごとの制限を超えてもクエリの開始に必要な最低限のメモリを使用できるようになっているので、そのようなクエリを実行するのに十分な量のメモリが "default" リソース プールに対して構成されていれば、同じインデックス作成を "default" ワークロード グループで実行できる可能性があります。Because the "default" workload group allows a query to exceed the per-query limit with the minimum required memory to start for SQL Server 2005 (9.x)SQL Server 2005 (9.x) compatibility, the user may be able to run the same index creation in "default" workload group, if the "default" resource pool has enough total memory configured to run such query.

アクセス許可Permissions

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

Examples

次の例は、既定のグループの要求の重要度を MEDIUM から LOW に変更する方法を示しています。The following example shows how to change the importance of requests in the default group from MEDIUM to LOW.

ALTER WORKLOAD GROUP "default"  
WITH (IMPORTANCE = LOW);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

次の例は、ワークロード グループを現在のプールから既定のプールに移動する方法を示しています。The following example shows how to move a workload group from the pool that it's in to the default pool.

ALTER WORKLOAD GROUP adHoc  
USING [default];  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

参照See Also

リソース ガバナー Resource Governor
CREATE WORKLOAD GROUP (Transact-SQL) CREATE WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL) DROP WORKLOAD GROUP (Transact-SQL)
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)
ALTER RESOURCE GOVERNOR (Transact-SQL)ALTER RESOURCE GOVERNOR (Transact-SQL)

* SQL Database
Managed Instance *
 
* SQL Database
Managed Instance *
 

 

SQL Server と SQL Managed InstanceSQL Server and SQL Managed Instance

既存の Resource Governor ワークロード グループの構成を変更します。必要に応じて、そのワークロード グループを Resource Governor リソース プールに割り当てることもできます。Changes an existing Resource Governor workload group configuration, and optionally assigns it to a Resource Governor resource pool.

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

構文Syntax

ALTER WORKLOAD GROUP { group_name | "default" }  
[ WITH  
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]  
      [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]  
      [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]  
      [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]   
      [ [ , ] MAX_DOP = value ]  
      [ [ , ] GROUP_MAX_REQUESTS = value ] )  
 ]  
[ USING { pool_name | "default" } ]  
[ ; ]  

引数Arguments

group_name | "default"group_name | "default"
既存のユーザー定義のワークロード グループの名前か、リソース ガバナーの既定のワークロード グループを指定します。Is the name of an existing user-defined workload group or the Resource Governor default workload group.

注意

SQL ServerSQL Server のインストール時に、リソース ガバナーにより "既定の" グループと内部のグループが作成されます。Resource Governor creates the "default" and internal groups when SQL ServerSQL Server is installed.

オプションの "default" を ALTER WORKLOAD GROUP で使用する場合は、システム予約語の DEFAULT と競合しないように引用符 ("") または角かっこ ([]) で囲む必要があります。The option "default" must be enclosed by quotation marks ("") or brackets ([]) when used with ALTER WORKLOAD GROUP to avoid conflict with DEFAULT, which is a system reserved word. 詳細については、「データベース識別子」を参照してください。For more information, see Database Identifiers.

注意

定義済みのワークロード グループおよびリソース プールはすべて、"default" などの小文字の名前を使用しています。Predefined workload groups and resource pools all use lowercase names, such as "default". 大文字と小文字を区別する照合順序を使用するサーバーでは、これを考慮する必要があります。This should be taken into account for servers that use case-sensitive collation. SQL_Latin1_General_CP1_CI_AS など、大文字と小文字を区別しない照合順序を使用するサーバーでは、"default" と "Default" が同じものと見なされます。Servers with case-insensitive collation, such as SQL_Latin1_General_CP1_CI_AS, will treat "default" and "Default" as the same.

IMPORTANCE = { LOW | MEDIUM | HIGH }IMPORTANCE = { LOW | MEDIUM | HIGH }
ワークロード グループでの要求の相対的な重要度を指定します。Specifies the relative importance of a request in the workload group. 重要度は次のいずれかです。Importance is one of the following:

  • LOWLOW
  • MEDIUM (既定)MEDIUM (default)
  • HIGHHIGH

注意

各重要度の設定は、内部に計算用の数値として格納されます。Internally each importance setting is stored as a number that is used for calculations.

IMPORTANCE は、リソース プールに対してローカルです。同じリソース プール内の異なる重要度のワークロード グループは互いに影響しますが、別のリソース プールのワークロード グループには影響しません。IMPORTANCE is local to the resource pool; workload groups of different importance inside the same resource pool affect each other, but do not affect workload groups in another resource pool.

REQUEST_MAX_MEMORY_GRANT_PERCENT = value REQUEST_MAX_MEMORY_GRANT_PERCENT = value
1 つの要求にプールから割り当てられる最大メモリ量を指定します。Specifies the maximum amount of memory that a single request can take from the pool. value は、MAX_MEMORY_PERCENT で指定したリソース プールのサイズが基準になります。value is a percentage relative to the resource pool size specified by MAX_MEMORY_PERCENT.

valueSQL Server 2017 (14.x)SQL Server 2017 (14.x) までの整数と SQL Server 2019 (15.x)SQL Server 2019 (15.x) で始まる float です。value is an integer up to SQL Server 2017 (14.x)SQL Server 2017 (14.x) and a float starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x). 既定値は 25 です。Default value is 25. value の許容範囲は 1 ~ 100 です。The allowed range for value is from 1 through 100.

注意

指定した量のみがクエリの実行時に許可されるメモリとして割り当てられます。The amount specified only refers to query execution grant memory.

重要

value を 0 に設定すると、ユーザー定義のワークロード グループでは SORT と HASH JOIN 操作を含むクエリが実行されなくなります。Setting value to 0 prevents queries with SORT and HASH JOIN operations in user-defined workload groups from running.

同時に他のクエリが実行されているとサーバーが空きメモリを十分に確保できない可能性があるため、value を 70 より大きな値に設定することはお勧めしません。It is not recommended to set value greater than 70 because the server may be unable to set aside enough free memory if other concurrent queries are running. これによってやがては、クエリの時間切れエラー 8645 が発生します。This may eventually lead to query time-out error 8645.

注意

クエリのメモリ要求がこのパラメーターによって指定されている制限を超えると、サーバーは次のように対応します。If the query memory requirements exceed the limit that is specified by this parameter, the server does the following:

  • ユーザー定義のワークロード グループでは、メモリ要求が制限より低くなるか、並列処理の次数が 1 になるまで、サーバーはクエリの並列処理の次数を下げます。For user-defined workload groups, the server tries to reduce the query degree of parallelism until the memory requirement falls under the limit, or until the degree of parallelism equals 1. それでもクエリのメモリ要求が制限を超える場合は、エラー 8657 が発生します。If the query memory requirement is still greater than the limit, error 8657 occurs.

  • 内部および既定のワークロード グループでは、そのクエリに必要なメモリの確保がサーバーによって許可されます。For internal and default workload groups, the server permits the query to obtain the required memory.

サーバーに十分な物理メモリがない場合は、どちらの場合も時間切れエラー 8645 が発生する可能性があります。Be aware that both cases are subject to time-out error 8645 if the server has insufficient physical memory.

REQUEST_MAX_CPU_TIME_SEC = value REQUEST_MAX_CPU_TIME_SEC = value
要求が使用できる最大 CPU 時間を秒単位で指定します。Specifies the maximum amount of CPU time, in seconds, that a request can use. value は、0 または正の整数にする必要があります。value must be 0 or a positive integer. value の既定の設定が 0 の場合は、無制限を示します。The default setting for value is 0, which means unlimited.

注意

既定では、リソース ガバナーでは最大時間を超過しても、要求は継続されます。By default, Resource Governor will not prevent a request from continuing if the maximum time is exceeded. ただし、イベントが生成されます。However, an event will be generated. 詳細については、「CPU Threshold Exceeded イベント クラス」を参照してください。For more information, see CPU Threshold Exceeded Event Class.

重要

SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 および SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU3 以降では、トレース フラグ 2422 を使用すると、最大時間を超えたときにリソース ガバナーが要求を中止します。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU3, and using trace flag 2422, Resource Governor will abort a request when the maximum time is exceeded.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC =valueREQUEST_MEMORY_GRANT_TIMEOUT_SEC =value
メモリ許可 (作業バッファー メモリ) が使用可能になるのをクエリが待機できる最大時間を秒単位で指定します。Specifies the maximum time, in seconds, that a query can wait for memory grant (work buffer memory) to become available.

注意

メモリ許可のタイムアウトに達しても、常にクエリが失敗するとは限りません。A query does not always fail when memory grant time-out is reached. クエリが失敗するのは、同時実行クエリ数が多すぎる場合だけです。A query will only fail if there are too many concurrent queries running. それ以外の場合、クエリは最小限のメモリ許可しか取得できないので、クエリのパフォーマンスが低下します。Otherwise, the query may only get the minimum memory grant, resulting in reduced query performance.

value は正の整数である必要があります。value must be a positive integer. value の既定の設定である 0 の場合、クエリ コストに基づく内部の計算を使用して、最大時間が決定されます。The default setting for value, 0, uses an internal calculation based on query cost to determine the maximum time.

MAX_DOP =value MAX_DOP =value
並列要求の最大 DOP (並列処理の次数) を指定します。Specifies the maximum degree of parallelism (DOP) for parallel requests. value は 0 または正の整数 (1 から 255) にする必要があります。value must be 0 or a positive integer, 1 though 255. value が 0 の場合、サーバーは並列処理の最大限度を選択します。When value is 0, the server chooses the max degree of parallelism. これは既定の推奨設定です。This is the default and recommended setting.

注意

データベース エンジンDatabase Engineによって MAX_DOP に設定される実際の値は、指定された値よりも小さくなる場合があります。The actual value that the データベース エンジンDatabase Engine sets for MAX_DOP by might be less than the specified value. 最終的な値は、min(255, number of CPUs) という式で決定されます。The final value is determined by the formula min(255, number of CPUs).

注意事項

MAX_DOP を変更すると、サーバーのパフォーマンスが低下することがあります。Changing MAX_DOP can adversely affect a server's performance. MAX_DOP を変更する必要がある場合には、1 つの NUMA ノードで示されているハードウェア スケジューラの最大数以下の値に設定することをお勧めします。If you must change MAX_DOP, we recommend that it be set to a value that is less than or equal to the maximum number of hardware schedulers that are present in a single NUMA node. MAX_DOP に 8 よりも大きな値を設定することはお勧めできません。We recommend that you do not set MAX_DOP to a value greater than 8.

MAX_DOP は次のように処理されます。MAX_DOP is handled as follows:

  • ワークロード グループの MAX_DOP を超えない限り、クエリ ヒントとしての MAX_DOP が有効になります。MAX_DOP as a query hint is honored as long as it does not exceed workload group MAX_DOP.

  • クエリ ヒントとしての MAX_DOP は、sp_configure の 'max degree of parallelism' を常にオーバーライドします。MAX_DOP as a query hint always overrides sp_configure 'max degree of parallelism'.

  • ワークロード グループの MAX_DOP は、sp_configure の 'max degree of parallelism' をオーバーライドします。Workload group MAX_DOP overrides sp_configure 'max degree of parallelism'.

  • コンパイル時にクエリが直列 (MAX_DOP = 1) としてマークされている場合は、ワークロード グループまたは sp_configure の設定にかかわらず、実行時に並列に変更することはできません。If the query is marked as serial (MAX_DOP = 1) at compile time, it cannot be changed back to parallel at run time regardless of the workload group or sp_configure setting.

DOP は、構成した後、許可メモリの不足時にのみ低くすることができます。After DOP is configured, it can only be lowered on grant memory pressure. ワークロード グループの再構成は、許可メモリ キューで待機している間は認識されません。Workload group reconfiguration is not visible while waiting in the grant memory queue.

GROUP_MAX_REQUESTS = value GROUP_MAX_REQUESTS = value
ワークロード グループで実行を許可する同時要求の最大数を指定します。Specifies the maximum number of simultaneous requests that are allowed to execute in the workload group. value は、0 または正の整数にする必要があります。value must be 0 or a positive integer. value の既定の設定である 0 の場合、無制限の要求が許可されます。The default setting for value, 0, allows unlimited requests. 同時要求の最大数に達した場合、そのグループのユーザーはログインできますが、同時要求数が指定した値を下回るまで待機状態になります。When the maximum concurrent requests are reached, a user in that group can log in, but is placed in a wait state until concurrent requests are dropped below the value specified.

USING { pool_name | "default" }USING { pool_name | "default" }
ワークロード グループを pool_name で識別されるユーザー定義のリソース プールに関連付けます。実質的には、これによってワークロード グループがリソース プールに配置されます。Associates the workload group with the user-defined resource pool identified by pool_name, which in effect puts the workload group in the resource pool. pool_name を指定していない場合、または USING 引数を使用していない場合、ワークロード グループは事前に定義されたリソース ガバナーの既定のプールに配置されます。If pool_name is not provided or if the USING argument is not used, the workload group is put in the predefined Resource Governor default pool.

オプションの "default" を ALTER WORKLOAD GROUP で使用する場合は、システム予約語の DEFAULT と競合しないように引用符 ("") または角かっこ ([]) で囲む必要があります。The option "default" must be enclosed by quotation marks ("") or brackets ([]) when used with ALTER WORKLOAD GROUP to avoid conflict with DEFAULT, which is a system reserved word. 詳細については、「データベース識別子」を参照してください。For more information, see Database Identifiers.

注意

オプションの "default" は、大文字と小文字が区別されます。The option "default" is case-sensitive.

解説Remarks

ALTER WORKLOAD GROUP は、既定のグループに対して使用できます。ALTER WORKLOAD GROUP is allowed on the default group.

ワークロード グループの構成の変更は、ALTER RESOURCE GOVERNOR RECONFIGURE を実行しないと有効になりません。Changes to the workload group configuration do not take effect until after ALTER RESOURCE GOVERNOR RECONFIGURE is executed. プランを変更し、設定に影響する場合、新しい設定は、DBCC FREEPROCCACHE (pool_name) の実行後にのみ、前にキャッシュされたプランに反映されます。この pool_name は、ワークロード グループが関連付けられているリソース ガバナー リソース プールの名前です。When changing a plan affecting setting, the new setting will only take effect in previously cached plans after executing DBCC FREEPROCCACHE (pool_name), where pool_name is the name of a Resource Governor resource pool on which the workload group is associated with.

  • MAX_DOP を 1 に変更する場合、並列プランは直列モードで実行できるため、DBCC FREEPROCCACHE を実行する必要はありません。If changing MAX_DOP to 1, executing DBCC FREEPROCCACHE is not required because parallel plans can run in serial mode. ただし、直列プランとしてコンパイルされたプランほど効率的ではない可能性があります。However, it may not be as efficient as a plan compiled as a serial plan.

  • MAX_DOP を 1 から 0、または 1 より大きい値に変更する場合、DBCC FREEPROCCACHE を実行する必要はありません。If changing MAX_DOP from 1 to 0 or a value greater than 1, executing DBCC FREEPROCCACHE is not required. ただし、直列プランは並列で実行できません。そのため、個々のキャッシュを消去すると、場合によっては、新しいプランを並列処理でコンパイルできます。However, serial plans cannot run in parallel, so clearing the respective cache will allow new plans to potentially be compiled using parallelism.

注意事項

複数のワークロード グループに関連付けられているリソース プールからキャッシュされているプランを消去すると、ユーザー定義のリソース プールが pool_name で識別されているすべてのワークロード グループに影響します。Clearing cached plans from a resource pool that is associated with more than one workload group will affect all workload groups with the user-defined resource pool identified by pool_name.

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

REQUEST_MEMORY_GRANT_PERCENT:SQL Server 2005 (9.x)SQL Server 2005 (9.x)インデックスの作成では、パフォーマンスの改善のために最初に付与されたのよりも多くのワークスペース メモリを使用することが許可されています。REQUEST_MEMORY_GRANT_PERCENT: In SQL Server 2005 (9.x)SQL Server 2005 (9.x), index creation is allowed to use more workspace memory than initially granted for improved performance. この特別な処理は、今後のバージョンのリソース ガバナーでもサポートされますが、最初のメモリ許可も追加のメモリ許可もリソース プール設定とワークロード グループ設定によって制限されます。This special handling is supported by Resource Governor in later versions, however, the initial grant and any additional memory grant are limited by resource pool and workload group settings.

パーティション テーブルのインデックス作成Index Creation on a Partitioned Table

非固定パーティション テーブルのインデックス作成によって消費されるメモリは、含まれるパーティションの数に比例します。The memory consumed by index creation on non-aligned partitioned table is proportional to the number of partitions involved. 必要なメモリの合計が、リソース ガバナーのワークロード グループの設定によって課せられているクエリごとの制限 (REQUEST_MAX_MEMORY_GRANT_PERCENT) を超えると、インデックス作成の実行に失敗します。If the total required memory exceeds the per-query limit (REQUEST_MAX_MEMORY_GRANT_PERCENT) imposed by the Resource Governor workload group setting, this index creation may fail to execute. "default" ワークロード グループでは、SQL Server 2005 (9.x)SQL Server 2005 (9.x) との互換性のために、クエリごとの制限を超えてもクエリの開始に必要な最低限のメモリを使用できるようになっているので、そのようなクエリを実行するのに十分な量のメモリが "default" リソース プールに対して構成されていれば、同じインデックス作成を "default" ワークロード グループで実行できる可能性があります。Because the "default" workload group allows a query to exceed the per-query limit with the minimum required memory to start for SQL Server 2005 (9.x)SQL Server 2005 (9.x) compatibility, the user may be able to run the same index creation in "default" workload group, if the "default" resource pool has enough total memory configured to run such query.

アクセス許可Permissions

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

Examples

次の例は、既定のグループの要求の重要度を MEDIUM から LOW に変更する方法を示しています。The following example shows how to change the importance of requests in the default group from MEDIUM to LOW.

ALTER WORKLOAD GROUP "default"  
WITH (IMPORTANCE = LOW);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

次の例は、ワークロード グループを現在のプールから既定のプールに移動する方法を示しています。The following example shows how to move a workload group from the pool that it's in to the default pool.

ALTER WORKLOAD GROUP adHoc  
USING [default];  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

参照See Also

リソース ガバナー Resource Governor
CREATE WORKLOAD GROUP (Transact-SQL) CREATE WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL) DROP WORKLOAD GROUP (Transact-SQL)
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)
ALTER RESOURCE GOVERNOR (Transact-SQL)ALTER RESOURCE GOVERNOR (Transact-SQL)

* Azure Synapse
Analytics *
 
* Azure Synapse
Analytics *
 

 

Azure Synapse AnalyticsAzure Synapse Analytics

既存のワークロード グループを変更します。Alters an existing workload group.

実行中の要求とキューに置かれた要求を含むシステムで ALTER WORKLOAD GROUP がどのように動作するかの詳細については、以下の「ALTER WORKLOAD GROUP の動作」のセクションを参照してください。See the ALTER WORKLOAD GROUP behavior section below for further details on how ALTER WORKLOAD GROUP behaves on a system with running and queued requests.

CREATE WORKLOAD GROUP に適用される制限は ALTER WORKLOAD GROUP にも適用されます。Restrictions in place for CREATE WORKLOAD GROUP also apply to ALTER WORKLOAD GROUP. パラメーターを変更する前に、クエリ sys.workload_management_workload_groups を使用して、値が許容範囲内にあることを確認してください。Prior to modifying parameters, query sys.workload_management_workload_groups to ensure the values are within acceptable ranges.

構文Syntax

ALTER WORKLOAD GROUP group_name
 WITH
 ([       MIN_PERCENTAGE_RESOURCE = value ]
  [ [ , ] CAP_PERCENTAGE_RESOURCE = value ]
  [ [ , ] REQUEST_MIN_RESOURCE_GRANT_PERCENT = value ]
  [ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ] 
  [ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }]
  [ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
  [ ; ]

引数Arguments

group_namegroup_name
変更されている、既存のユーザー定義のワークロード グループの名前です。Is the name of the existing user-defined workload group being altered. group_name は変更できません。group_name is not alterable.

MIN_PERCENTAGE_RESOURCE = valueMIN_PERCENTAGE_RESOURCE = value
Value は 0 から 100 の範囲の整数です。Value is an integer range from 0 to 100. min_percentage_resource を変更するときは、min_percentage_resource の合計がすべてのワークロード グループ全体で 100 を超えてはいけません。When altering min_percentage_resource, the sum of min_percentage_resource across all workload groups cannot exceed 100. min_percentage_resource を変更するには、コマンドが完了する前に、実行中のすべてのクエリがワークロードグループ内で完了する必要があります。Altering min_percentage_resource requires all running queries to complete in the workload group before the command will complete. 詳細については、このドキュメントの「ALTER WORKLOAD GROUP の動作」のセクションを参照してください。See the ALTER WORKLOAD GROUP Behavior section in this doc for further details.

CAP_PERCENTAGE_RESOURCE = valueCAP_PERCENTAGE_RESOURCE = value
Value は 1 から 100 の範囲の整数です。Value is an integer range from 1 through 100. cap_percentage_resource の値は、min_percentage_resource よりも大きくする必要があります。The value for cap_percentage_resource must be greater than min_percentage_resource. cap_percentage_resource を変更するには、コマンドが完了する前に、実行中のすべてのクエリがワークロードグループ内で完了する必要があります。Altering cap_percentage_resource requires all running queries to complete in the workload group before the command will complete. 詳細については、このドキュメントの「ALTER WORKLOAD GROUP の動作」のセクションを参照してください。See the ALTER WORKLOAD GROUP Behavior section in this doc for further details.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = valueREQUEST_MIN_RESOURCE_GRANT_PERCENT = value
Value は、0.75 から 100.00 の範囲の 10 進数です。Value is a decimal with a range between 0.75 to 100.00. request_min_resource_grant_percent の値は、min_percentage_resource の係数である必要があり、cap_percentage_resource よりも小さくする必要があります。The value for request_min_resource_grant_percent needs to be a factor of min_percentage_resource and be less than cap_percentage_resource.

REQUEST_MAX_RESOURCE_GRANT_PERCENT = valueREQUEST_MAX_RESOURCE_GRANT_PERCENT = value
Value は 10 進数で request_min_resource_grant_percent 以上である必要があります。Value is a decimal and must be greater than request_min_resource_grant_percent.

IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }
ワークロード グループに対する要求の既定の重要度を変更します。Alters the default importance of a request for the workload group.

QUERY_EXECUTION_TIMEOUT_SEC = valueQUERY_EXECUTION_TIMEOUT_SEC = value
クエリが取り消されるまでに実行できる最大時間を秒単位で変更します。Alters the maximum time, in seconds, that a query can execute before it is canceled. Value は、0 または正の整数にする必要があります。Value must be 0 or a positive integer. value の既定の設定が 0 の場合は、無制限を示します。The default setting for value is 0, which means unlimited.

アクセス許可Permissions

CONTROL DATABASE アクセス許可が必須ですRequires CONTROL DATABASE permission

Example

次の例では、カタログ ビューの wgDataLoads の値を確認し、値を変更しています。The below example checks the values in the catalog view for wgDataLoads and changes the values.

SELECT *
FROM sys.workload_management_workload_groups  
WHERE [name] = 'wgDataLoads'

ALTER WORKLOAD GROUP wgDataLoads WITH
( MIN_PERCENTAGE_RESOURCE            = 40
 ,CAP_PERCENTAGE_RESOURCE            = 80
 ,REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10 )

ALTER WORKLOAD GROUP の動作ALTER WORKLOAD GROUP behavior

どの時点でも、システムには 3 種類の要求がありますAt any point in time there are 3 types of requests in the system

  • まだ分類されていない要求。Requests which have not been classified yet.
  • オブジェクトのロックまたはシステム リソースのために分類され、待機している要求。Requests which are classified - and waiting - for object locks or system resources.
  • 分類され、実行中の要求。Requests which are classified - and running.

変更するワークロード グループのプロパティによって、設定が有効になるタイミングは異なります。Based on the properties of a workload group being altered, the timing of when the settings take effect will differ.

重要度または query_execution_timeout 重要度と query_execution_timeout のプロパティの場合、分類されていない要求は、新しい構成値を取得します。Importance or query_execution_timeout For the importance and query_execution_timeout properties, non-classified requests pick up the new config values. 待機中および実行中の要求は、古い構成で実行されます。Waiting and running requests execute with the old configuration. ALTER WORKLOAD GROUP の要求は、ワークロード グループでクエリが実行されているかどうかに関係なく、直ちに実行されます。The ALTER WORKLOAD GROUP request executes immediately regardless if there are running queries in the workload group.

Request_min_resource_grant_percent または request_max_resource_grant_percent request_min_resource_grant_percent または request_max_resource_grant_percent の場合、実行中の要求は古い構成で実行されます。Request_min_resource_grant_percent or request_max_resource_grant_percent For request_min_resource_grant_percent and request_max_resource_grant_percent, running requests execute with the old configuration. 待機中の要求と分類されていない要求は、新しい構成値を取得します。Waiting requests and non-classified requests pick up the new config values. ALTER WORKLOAD GROUP の要求は、ワークロード グループでクエリが実行されているかどうかに関係なく、直ちに実行されます。The ALTER WORKLOAD GROUP request executes immediately regardless if there are running queries in the workload group.

Min_percentage_resource または cap_percentage_resource min_percentage_resource および cap_percentage_resource の場合、実行中の要求は古い構成で実行されます。Min_percentage_resource or cap_percentage_resource For min_percentage_resource and cap_percentage_resource, running requests execute with the old configuration. 待機中の要求と分類されていない要求は、新しい構成値を取得します。Waiting requests and non-classified requests pick up the new config values.

min_percentage_resource と cap_percentage_resource を変更するには、変更されているワークロード グループ内で実行中の要求をドレインする必要があります。Changing min_percentage_resource and cap_percentage_resource requires draining of running requests in the workload group that is being altered. min_percentage_resource を減らすと、解放されたリソースが共有プールに返され、他のワークロード グループからの要求で使用できるようになります。When decreasing min_percentage_resource, the freed resources are returned to the share pool allowing requests from other workload groups the ability to utilize. 逆に、min_percentage_resource を増やすと、共有プールから必要なリソースのみを使用する要求が完了するまで待機します。Conversely, increasing the min_percentage_resource will wait until requests utilizing only the needed resources from the shared pool to complete. ワークロード グループの変更操作では、共有プールで実行されるのを待機している他の要求よりも、共有リソースへのアクセスが優先されます。Alter workload group operation will have prioritized access to shared resources over other requests waiting to be executed on shared pool. min_percentage_resource の合計が 100% を超えると、ALTER WORKLOAD GROUP の要求はすぐに失敗します。If the sum of min_percentage_resource exceeds 100%, the ALTER WORKLOAD GROUP request fails immediately.

ロック動作 ワークロード グループを変更するには、すべてのワークロード グループに対するグローバルなロックが必要です。Locking behavior Altering a workload group requires a global lock across all workload groups. ワークロード グループを変更する要求は、既に送信済みのワークロード グループの作成/ドロップ要求の後ろのキューに格納されます。A request to alter a workload group would queue behind already submitted create or drop workload group requests. 変更ステートメントのバッチを一度に送信すると、そのバッチは、送信された順序で処理されます。If a batch of alter statements is submitted at once, they are processed in the order in which they are submitted.

関連項目See also