CREATE WORKLOAD GROUP(Transact-SQL)CREATE WORKLOAD GROUP (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

리소스 관리자 작업 그룹을 만든 후 이 작업 그룹을 리소스 관리자 리소스 풀에 연결합니다.Creates a Resource Governor workload group and associates the workload group with a Resource Governor resource pool. 리소스 관리자의 일부 버전에서 사용할 수 없는 MicrosoftMicrosoft SQL ServerSQL Server합니다.Resource Governor is not available in every edition of MicrosoftMicrosoft SQL ServerSQL Server. SQL ServerSQL Server버전에서 지원되는 기능 목록은 SQL Server 2016 버전에서 지원하는 기능을 참조하세요.For a list of features that are supported by the editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2016.

항목 링크 아이콘 TRANSACT-SQL 구문 표기 규칙합니다.Topic link icon Transact-SQL Syntax Conventions.

구문Syntax


CREATE WORKLOAD GROUP group_name  
[ 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" ]    
    [ [ , ] EXTERNAL external_pool_name | "default" ] ]   
    } ]  
[ ; ]  

인수Arguments

o u p _group_name
작업 그룹에 대한 사용자 정의 이름입니다.Is the user-defined name for the workload group. group_name 은 영숫자로 최대 128 자를 사용할 수의 인스턴스 내에서 고유 해야 SQL ServerSQL Server에 대 한 규칙을 준수 해야 식별자합니다.group_name is alphanumeric, can be up to 128 characters, must be unique within an instance of SQL ServerSQL Server, and must comply with the rules for identifiers.

중요도 = {LOW | 보통 | 높은}IMPORTANCE = { LOW | MEDIUM | HIGH }
작업 그룹에 있는 요청의 상대적 중요도를 지정합니다.Specifies the relative importance of a request in the workload group. 중요도는 다음 중 하나이며 MEDIUM이 기본값이 됩니다.Importance is one of the following, with MEDIUM being the default:

  • LOWLOW

  • MEDIUMMEDIUM

  • 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 =REQUEST_MAX_MEMORY_GRANT_PERCENT =value
단일 요청이 풀에서 사용할 수 있는 최대 메모리 양을 지정합니다.Specifies the maximum amount of memory that a single request can take from the pool. 이 비율은 MAX_MEMORY_PERCENT에서 지정한 리소스 풀 크기에 따라 바뀝니다.This percentage is relative to the resource pool size specified by MAX_MEMORY_PERCENT.

참고

지정된 양은 쿼리 실행 부여 메모리만 참조합니다.The amount specified only refers to query execution grant memory.

0 또는 양의 정수 여야 합니다.value must be 0 or a positive integer. 허용된 범위 은 0에서 100 까지입니다.The allowed range for value is from 0 through 100. 에 대 한 기본 설정은 은 25입니다.The default setting for value is 25.

다음에 유의하세요.Note the following:

  • 설정 0은 차단 쿼리와 사용자 정의 작업 그룹에 SORT 및 HASH JOIN 연산 함께 실행에서 합니다.Setting value to 0 prevents queries with SORT and HASH JOIN operations in user-defined workload groups from running.

  • 설정을 권장 하지는 않습니다 서버 수 다른 동시 쿼리를 실행 중인 경우 가능한 메모리를 충분히 따로 설정 수 없기 때문에 70 보다 큽니다.We do not recommend setting value greater than 70 because the server may be unable to set aside enough free memory if other concurrent queries are running. 71 이상의 값으로 설정하면 쿼리 시간 초과 오류 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 =REQUEST_MAX_CPU_TIME_SEC =value
요청이 사용할 수 있는 최대 CPU 시간(초)을 지정합니다.Specifies the maximum amount of CPU time, in seconds, that a request can use. 0 또는 양의 정수 여야 합니다.value must be 0 or a positive integer. 에 대 한 기본 설정은 0은 무제한을 의미 합니다.The default setting for value is 0, which means unlimited.

참고

최대 시간이 초과하는 경우 리소스 관리자가 요청을 종료하지는 않지만Resource Governor will not prevent a request from continuing if the maximum time is exceeded. 이벤트가 생성됩니다.However, an event will be generated. 자세한 내용은 참조 CPU 임계값을 초과 이벤트 클래스합니다.For more information, see CPU Threshold Exceeded Event Class.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC =REQUEST_MEMORY_GRANT_TIMEOUT_SEC =value
메모리(작업 버퍼 메모리)가 부여될 때까지 쿼리가 대기할 수 있는 최대 시간(초)을 지정합니다.Specifies the maximum time, in seconds, that a query can wait for a 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.

0 또는 양의 정수 여야 합니다.value must be 0 or a positive integer. 에 대 한 기본 설정은 , 0, 쿼리 비용에 따른 내부 계산을 사용 하 여 최대 시간을 결정 합니다.The default setting for value, 0, uses an internal calculation based on query cost to determine the maximum time.

MAX_DOP =MAX_DOP =value
병렬 요청의 최대 DOP(병렬 처리 수준)를 지정합니다.Specifies the maximum degree of parallelism (DOP) for parallel requests. 0 또는 양의 정수 여야 합니다.value must be 0 or a positive integer. 허용된 범위 은 0에서 64 까지입니다.The allowed range for value is from 0 through 64. 에 대 한 기본 설정은 , 0, 글로벌 설정을 사용 합니다.The default setting for value, 0, uses the global setting. MAX_DOP는 다음과 같이 처리합니다.MAX_DOP is handled as follows:

  • MAX_DOP는 작업 그룹 MAX_DOP를 초과하지 않는 한 쿼리 힌트로 유효합니다.MAX_DOP as a query hint is effective as long as it does not exceed workload group MAX_DOP. MAXDOP 쿼리 힌트 값이 리소스 관리자를 사용하여 구성된 값을 초과하는 경우 데이터베이스 엔진은 리소스 관리자 MAXDOP 값을 사용합니다.If the MAXDOP query hint value exceeds the value that is configured by using the Resource Governor, the Database Engine uses the Resource Governor MAXDOP value.

  • 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'.

  • 컴파일할 때 쿼리가 직렬로 표시되면 작업 그룹이나 sp_configure 설정에 관계없이 런타임에서 병렬로 다시 변경할 수 없습니다.If the query is marked as serial 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 =GROUP_MAX_REQUESTS =value
    작업 그룹에서 실행할 수 있는 최대 동시 요청 수를 지정합니다.Specifies the maximum number of simultaneous requests that are allowed to execute in the workload group. 는 0 또는 양의 정수 여야 합니다.value must be a 0 or a positive integer. 에 대 한 기본 설정은 , 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.

    사용 하 여 { pool_name 이라는 | "default" }USING { pool_name | "default" }
    로 식별 되는 사용자 정의 리소스 풀과 작업 그룹을 연결 pool_name 이라는합니다.Associates the workload group with the user-defined resource pool identified by pool_name. 그러면 실제로 리소스 풀에 작업 그룹을 넣습니다.This 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"는 예약어이며 USING으로 사용될 경우 따옴표("") 또는 대괄호([])로 묶여야 합니다."default" is a reserved word and when used with USING, must be enclosed by quotation marks ("") or brackets ([]).

참고

미리 정의된 작업 그룹과 리소스 풀은 모두 "default"와 같은 소문자 이름을 사용합니다.Predefined workload groups and resource pools all use lower case 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.

외부 external_pool_name | "default"EXTERNAL external_pool_name | “default“
적용 대상: SQL ServerSQL Server ( SQL Server 2016SQL Server 2016 ~ SQL Server 2017SQL Server 2017).Applies to: SQL ServerSQL Server ( SQL Server 2016SQL Server 2016 through SQL Server 2017SQL Server 2017).

작업 그룹 외부 리소스 풀을 지정할 수 있습니다.Workload group can specify an external resource pool. 작업 그룹을 정의할 수 있고 2 풀과 연결 됩니다.You can define a workload group and associate with 2 pools:

주의Remarks

REQUEST_MEMORY_GRANT_PERCENT: 인덱스를 만드는 향상 된 성능을 위해 초기에 부여 된 보다 더 많은 작업 영역 메모리를 사용할 수 있습니다.REQUEST_MEMORY_GRANT_PERCENT: Index creation is allowed to use more workspace memory than what is initially granted for improved performance. 이러한 특별 처리는 SQL Server 2017SQL Server 2017의 리소스 관리자에서 지원됩니다.This special handling is supported by Resource Governor in SQL Server 2017SQL Server 2017. 그러나 초기 부여 및 추가 메모리 부여는 리소스 풀 및 작업 그룹 설정으로 제한됩니다.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" 작업 그룹에서는 쿼리가 필요한 최소 메모리를 포함하는 쿼리당 제한을 초과하게 되므로 "default" 리소스 풀에 이러한 쿼리를 실행할 수 있는 총 메모리가 구성되어 있는 경우 사용자가 "default" 작업 그룹에서 같은 인덱스 생성을 실행할 수 있습니다.Because the "default" workload group allows a query to exceed the per-query limit with the minimum required memory, 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.

PermissionsPermissions

CONTROL SERVER 권한이 필요합니다.Requires CONTROL SERVER permission.

Examples

다음 예에서는 newReports라는 작업 그룹을 만드는 방법을 보여 줍니다.The following example shows how to create a workload group named newReports. 리소스 관리자 기본 설정을 사용하고 리소스 관리자 기본 풀에 있습니다.It uses the Resource Governor default settings and is in the Resource Governor default pool. 예에서는 default 풀을 지정하지만 이 작업을 반드시 수행할 필요는 없습니다.The example specifies the default pool, but this is not required.

CREATE WORKLOAD GROUP newReports  
    USING "default" ;  
GO  

관련 항목:See Also

ALTER WORKLOAD GROUP(Transact-SQL) ALTER 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)