다음을 통해 공유


ALTER WORKLOAD GROUP(Transact-SQL)

제품 선택

다음 행에서 관심 있는 제품 이름을 선택하고 해당 제품의 정보만 표시됩니다.

* SQL Server *  

SQL Managed Instance

Azure Synapse
분석

 

SQL Server 및 SQL Managed Instance

기존 리소스 관리자 워크로드 그룹 구성을 변경하고 필요에 따라 다른 리소스 관리자 리소스 풀에 할당합니다.

메모

Azure SQL Managed Instance의 경우 리소스 관리자 구성을 수정하려면 master 데이터베이스의 컨텍스트에 있어야 합니다.

구문 규칙Transact-SQL.

통사론

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] } ]
[ ; ]

인수

group_name | [기본값]

기존 사용자 정의 워크로드 그룹 또는 리소스 관리자 기본 제공 default 워크로드 그룹의 이름입니다.

default 시스템 예약 단어인 DEFAULT충돌을 방지하기 위해 ALTER WORKLOAD GROUP 사용하는 경우 대괄호([]) 또는 따옴표("")에 있어야 합니다. 자세한 내용은 데이터베이스 식별자참조하세요.

기본 제공 리소스 풀 및 워크로드 그룹은 default같은 모든 소문자 이름을 사용합니다. 대/소문자 구분 데이터 정렬을 사용하는 서버에서 소문자 default 사용합니다. 대/소문자를 구분하지 않는 데이터 정렬이 있는 서버는 default, DefaultDEFAULT 동일한 값으로 처리합니다.

IMPORTANCE = { LOW | MEDIUM | HIGH }

워크로드 그룹에서 요청의 상대적 중요도를 지정합니다. 기본값은 MEDIUM.

IMPORTANCE 워크로드 그룹을 포함하는 리소스 풀에 로컬입니다. 동일한 리소스 풀 내에서 중요도가 다른 워크로드 그룹은 서로 영향을 주지만 다른 리소스 풀의 워크로드 그룹에는 영향을 주지 않습니다.

REQUEST_MAX_MEMORY_GRANT_PERCENT =

단일 요청이 풀에서 가져올 수 있는 최대 쿼리 작업 영역 메모리 양을 지정합니다. 값은 정의된 리소스 풀 크기의 백분율입니다. 기본값은 25입니다.

SQL Server 2017(14.x) 이상에서는 값이 정수이고 허용되는 범위는 1에서 100까지입니다.

SQL Server 2019(15.x)부터 값은 float 데이터 형식을 사용하여 소수 자릿수일 수 있습니다. 허용되는 범위는 0에서 100까지입니다.

중요하다

지정된 양은 쿼리 메모리 부여를 통해 얻은 쿼리 작업 영역 메모리만을 나타냅니다.

서버가 다른 동시 쿼리에 대해 충분한 여유 메모리를 따로 설정할 수 없으므로 값을 너무 크게 설정하지 않는 것이 좋습니다(예: 70보다 큼). 이로 인해 메모리 부여 시간 제한 오류 8645발생할 수 있습니다.

값을 0 또는 작은 값으로 설정하면 sorthash같은 작업 영역 메모리가 필요한 연산자가 있는 쿼리가 사용자 정의 워크로드 그룹에서 실행되지 않을 수 있습니다. 쿼리 메모리 요구 사항이 이 매개 변수에 정의된 제한을 초과하면 다음 동작이 발생합니다.

  • 사용자 정의 워크로드 그룹의 경우 서버는 메모리 요구 사항이 한도에 해당하거나 DOP가 1이 될 때까지 요청(쿼리)의 DOP(병렬 처리 수준)를 줄이려고 합니다. 쿼리 메모리 요구 사항이 여전히 한도보다 크면 오류 8657이 발생하고 쿼리가 실패합니다.
  • internaldefault 워크로드 그룹의 경우 서버는 쿼리가 필요한 메모리를 가져오도록 허용합니다.

두 경우 모두 서버에 실제 메모리가 부족한 경우 오류 8645 발생할 수 있습니다.

REQUEST_MAX_CPU_TIME_SEC =

요청에서 사용할 수 있는 최대 CPU 시간(초)을 지정합니다. 0 또는 양의 정수여야 합니다. 기본 설정은 0이며 이는 무제한을 의미합니다.

기본적으로 리소스 관리자는 최대 시간을 초과하는 경우 요청이 계속되는 것을 방지하지 않습니다. 그러나 이벤트가 생성됩니다. 자세한 내용은 CPU 임계값 초과 이벤트 클래스참조하세요.

SQL Server 2016(13.x) SP2 및 SQL Server 2017(14.x) CU3부터 추적 플래그 2422사용하여 리소스 관리자는 최대 CPU 시간이 초과되면 요청을 중단합니다.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC =

쿼리 작업 영역 메모리의 메모리 부여가 사용 가능해질 때까지 쿼리에서 대기할 수 있는 최대 시간(초)을 지정합니다. 0 또는 양의 정수여야 합니다. 0의 기본 설정은 쿼리 비용을 기반으로 내부 계산을 사용하여 최대 시간을 결정합니다.

메모리 부여 시간 제한에 도달할 때 쿼리가 항상 실패하는 것은 아닙니다. 쿼리가 너무 많은 동시 쿼리가 실행 중인 경우에만 실패합니다. 그렇지 않으면 쿼리가 최소 메모리 부여만 가져와 쿼리 성능이 저하될 수 있습니다.

MAX_DOP =

병렬 쿼리 실행에 대한 최대 병렬 처리 수준(MAXDOP)을 지정합니다. 허용되는 범위는 0에서 64까지입니다. 0의 기본 설정은 전역 설정을 사용합니다.

자세한 내용은 MAXDOP참조하세요.

GROUP_MAX_REQUESTS =

워크로드 그룹에서 실행할 수 있는 최대 동시 요청 수를 지정합니다. 0 또는 양의 정수여야 합니다. 기본 설정은 0이며 무제한 요청을 허용합니다. 최대 동시 요청에 도달하면 해당 그룹의 세션을 만들 수 있지만 동시 요청 수가 지정된 값 아래로 떨어질 때까지 대기 상태에 배치됩니다.

USING { pool_name | [기본값] }

워크로드 그룹을 pool_name식별된 사용자 정의 리소스 풀 또는 default 리소스 풀과 연결합니다. pool_name 제공되지 않거나 USING 인수가 지정되지 않은 경우 워크로드 그룹은 기본 제공 default 풀과 연결됩니다.

default 예약어이며 USING지정된 경우 대괄호([]) 또는 따옴표("")로 묶어야 합니다.

기본 제공 리소스 풀 및 워크로드 그룹은 default같은 모든 소문자 이름을 사용합니다. 대/소문자 구분 데이터 정렬을 사용하는 서버에서 소문자 default 사용합니다. 대/소문자를 구분하지 않는 데이터 정렬이 있는 서버는 default, DefaultDEFAULT 동일한 값으로 처리합니다.

발언

ALTER WORKLOAD GROUP default 워크로드 그룹에서 허용되지만 internal 그룹에는 허용되지 않습니다.

워크로드 그룹 구성에 대한 변경 내용은 ALTER RESOURCE GOVERNOR RECONFIGURE 실행될 때까지 적용되지 않습니다.

자세한 내용은 Resource GovernorResource Governor 워크로드 그룹참조하세요.

MAXDOP

지정된 쿼리의 경우 유효한 MAXDOP 다음과 같이 결정됩니다.

MAXDOP 제한은 작업따라 설정됩니다. 요청 또는 쿼리 제한당이 아닙니다. 병렬 쿼리를 실행하는 동안 단일 요청은 스케줄러할당된 여러 작업을 생성할 수 있습니다. 자세한 내용은 스레드 및 작업 아키텍처 가이드참조하세요.

쿼리가 컴파일 시간(MAXDOP = 1)에 직렬로 표시되면 워크로드 그룹 또는 서버 구성 설정에 관계없이 런타임에 병렬 처리로 실행할 수 없습니다. 쿼리에 대해 MAXDOP 결정된 후에는 메모리 압력으로 인해 낮출 수 있습니다. 워크로드 그룹 재구성은 메모리 부여 큐에서 대기 중인 쿼리에 영향을 주지 않습니다.

캐시된 계획

MAX_DOP같은 설정에 영향을 주는 계획을 변경하면 DBCC FREEPROCCACHE (<pool_name>)실행한 후에만 새 설정이 이전에 캐시된 계획에 적용됩니다. 여기서 <pool_name> 현재 워크로드 그룹에서 사용하는 리소스 관리자 리소스 풀의 이름입니다.

  • MAX_DOP 1로 변경하는 경우 병렬 계획이 직렬 모드에서 실행되므로 DBCC FREEPROCCACHE 실행할 필요가 없습니다. 그러나 이러한 계획은 직렬 계획으로 컴파일된 계획보다 덜 효율적일 수 있습니다.
  • MAX_DOP 1에서 0으로 변경하거나 1보다 큰 값을 변경하는 경우 DBCC FREEPROCCACHE 실행할 필요가 없습니다. 그러나 직렬 계획은 병렬로 실행할 수 없으므로 각 캐시를 지우면 병렬 처리를 사용하여 새 계획을 컴파일할 수 있습니다.

경고

둘 이상의 워크로드 그룹과 연결된 리소스 풀에서 캐시된 계획을 지우면 <pool_name>식별된 사용자 정의 리소스 풀을 사용하는 모든 워크로드 그룹에 영향을 줍니다.

인덱스 만들기

성능상의 이유로 인덱스 만들기는 처음에 부여된 것보다 더 많은 메모리 작업 영역을 사용할 수 있습니다. 리소스 관리자는 이 특별 처리를 지원합니다. 그러나 초기 권한 부여 및 추가 메모리 부여는 워크로드 그룹 및 리소스 풀 설정에 의해 제한됩니다.

분할된 테이블에서 정렬되지 않은 인덱스를 만드는 데 사용되는 메모리는 관련된 파티션 수에 비례합니다. 필요한 총 메모리가 REQUEST_MAX_MEMORY_GRANT_PERCENT 워크로드 그룹 설정에 의해 적용되는 쿼리당 제한을 초과하면 인덱스 생성이 실패할 수 있습니다. default 워크로드 그룹을 사용하면 쿼리가 이전 버전과의 호환성을 위해 시작하는 데 필요한 최소 메모리로 쿼리당 제한을 초과할 수 있으므로 default 리소스 풀에 충분한 총 메모리가 있는 경우 default 워크로드 그룹을 사용하여 동일한 인덱스를 만들 수 있습니다.

권한을

CONTROL SERVER 권한이 필요합니다.

예제

다음 예제에서는 기본 그룹의 요청 중요성을 MEDIUMLOW변경하는 방법을 보여 줍니다.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

다음 예제에서는 현재 풀에 있는 풀에서 default 풀로 워크로드 그룹을 이동하는 방법을 보여줍니다.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

SQL Server

* SQL Managed Instance *  

Azure Synapse
분석

 

SQL Server 및 SQL Managed Instance

기존 리소스 관리자 워크로드 그룹 구성을 변경하고 필요에 따라 다른 리소스 관리자 리소스 풀에 할당합니다.

메모

Azure SQL Managed Instance의 경우 리소스 관리자 구성을 수정하려면 master 데이터베이스의 컨텍스트에 있어야 합니다.

구문 규칙Transact-SQL.

통사론

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] } ]
[ ; ]

인수

group_name | [기본값]

기존 사용자 정의 워크로드 그룹 또는 리소스 관리자 기본 제공 default 워크로드 그룹의 이름입니다.

default 시스템 예약 단어인 DEFAULT충돌을 방지하기 위해 ALTER WORKLOAD GROUP 사용하는 경우 대괄호([]) 또는 따옴표("")에 있어야 합니다. 자세한 내용은 데이터베이스 식별자참조하세요.

기본 제공 리소스 풀 및 워크로드 그룹은 default같은 모든 소문자 이름을 사용합니다. 대/소문자 구분 데이터 정렬을 사용하는 서버에서 소문자 default 사용합니다. 대/소문자를 구분하지 않는 데이터 정렬이 있는 서버는 default, DefaultDEFAULT 동일한 값으로 처리합니다.

IMPORTANCE = { LOW | MEDIUM | HIGH }

워크로드 그룹에서 요청의 상대적 중요도를 지정합니다. 기본값은 MEDIUM.

IMPORTANCE 워크로드 그룹을 포함하는 리소스 풀에 로컬입니다. 동일한 리소스 풀 내에서 중요도가 다른 워크로드 그룹은 서로 영향을 주지만 다른 리소스 풀의 워크로드 그룹에는 영향을 주지 않습니다.

REQUEST_MAX_MEMORY_GRANT_PERCENT =

단일 요청이 풀에서 가져올 수 있는 최대 쿼리 작업 영역 메모리 양을 지정합니다. 값은 정의된 리소스 풀 크기의 백분율입니다. 기본값은 25입니다.

SQL Server 2017(14.x) 이상에서는 값이 정수이고 허용되는 범위는 1에서 100까지입니다.

SQL Server 2019(15.x)부터 값은 float 데이터 형식을 사용하여 소수 자릿수일 수 있습니다. 허용되는 범위는 0에서 100까지입니다.

중요하다

지정된 양은 쿼리 메모리 부여를 통해 얻은 쿼리 작업 영역 메모리만을 나타냅니다.

서버가 다른 동시 쿼리에 대해 충분한 여유 메모리를 따로 설정할 수 없으므로 값을 너무 크게 설정하지 않는 것이 좋습니다(예: 70보다 큼). 이로 인해 메모리 부여 시간 제한 오류 8645발생할 수 있습니다.

값을 0 또는 작은 값으로 설정하면 sorthash같은 작업 영역 메모리가 필요한 연산자가 있는 쿼리가 사용자 정의 워크로드 그룹에서 실행되지 않을 수 있습니다. 쿼리 메모리 요구 사항이 이 매개 변수에 정의된 제한을 초과하면 다음 동작이 발생합니다.

  • 사용자 정의 워크로드 그룹의 경우 서버는 메모리 요구 사항이 한도에 해당하거나 DOP가 1이 될 때까지 요청(쿼리)의 DOP(병렬 처리 수준)를 줄이려고 합니다. 쿼리 메모리 요구 사항이 여전히 한도보다 크면 오류 8657이 발생하고 쿼리가 실패합니다.
  • internaldefault 워크로드 그룹의 경우 서버는 쿼리가 필요한 메모리를 가져오도록 허용합니다.

두 경우 모두 서버에 실제 메모리가 부족한 경우 오류 8645 발생할 수 있습니다.

REQUEST_MAX_CPU_TIME_SEC =

요청에서 사용할 수 있는 최대 CPU 시간(초)을 지정합니다. 0 또는 양의 정수여야 합니다. 기본 설정은 0이며 이는 무제한을 의미합니다.

기본적으로 리소스 관리자는 최대 시간을 초과하는 경우 요청이 계속되는 것을 방지하지 않습니다. 그러나 이벤트가 생성됩니다. 자세한 내용은 CPU 임계값 초과 이벤트 클래스참조하세요.

SQL Server 2016(13.x) SP2 및 SQL Server 2017(14.x) CU3부터 추적 플래그 2422사용하여 리소스 관리자는 최대 CPU 시간이 초과되면 요청을 중단합니다.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC =

쿼리 작업 영역 메모리의 메모리 부여가 사용 가능해질 때까지 쿼리에서 대기할 수 있는 최대 시간(초)을 지정합니다. 0 또는 양의 정수여야 합니다. 0의 기본 설정은 쿼리 비용을 기반으로 내부 계산을 사용하여 최대 시간을 결정합니다.

메모리 부여 시간 제한에 도달할 때 쿼리가 항상 실패하는 것은 아닙니다. 쿼리가 너무 많은 동시 쿼리가 실행 중인 경우에만 실패합니다. 그렇지 않으면 쿼리가 최소 메모리 부여만 가져와 쿼리 성능이 저하될 수 있습니다.

MAX_DOP =

병렬 쿼리 실행에 대한 최대 병렬 처리 수준(MAXDOP)을 지정합니다. 허용되는 범위는 0에서 64까지입니다. 0의 기본 설정은 전역 설정을 사용합니다.

자세한 내용은 MAXDOP참조하세요.

GROUP_MAX_REQUESTS =

워크로드 그룹에서 실행할 수 있는 최대 동시 요청 수를 지정합니다. 0 또는 양의 정수여야 합니다. 기본 설정은 0이며 무제한 요청을 허용합니다. 최대 동시 요청에 도달하면 해당 그룹의 세션을 만들 수 있지만 동시 요청 수가 지정된 값 아래로 떨어질 때까지 대기 상태에 배치됩니다.

USING { pool_name | [기본값] }

워크로드 그룹을 pool_name식별된 사용자 정의 리소스 풀 또는 default 리소스 풀과 연결합니다. pool_name 제공되지 않거나 USING 인수가 지정되지 않은 경우 워크로드 그룹은 기본 제공 default 풀과 연결됩니다.

default 예약어이며 USING지정된 경우 대괄호([]) 또는 따옴표("")로 묶어야 합니다.

기본 제공 리소스 풀 및 워크로드 그룹은 default같은 모든 소문자 이름을 사용합니다. 대/소문자 구분 데이터 정렬을 사용하는 서버에서 소문자 default 사용합니다. 대/소문자를 구분하지 않는 데이터 정렬이 있는 서버는 default, DefaultDEFAULT 동일한 값으로 처리합니다.

발언

ALTER WORKLOAD GROUP default 워크로드 그룹에서 허용되지만 internal 그룹에는 허용되지 않습니다.

워크로드 그룹 구성에 대한 변경 내용은 ALTER RESOURCE GOVERNOR RECONFIGURE 실행될 때까지 적용되지 않습니다.

자세한 내용은 Resource GovernorResource Governor 워크로드 그룹참조하세요.

MAXDOP

지정된 쿼리의 경우 유효한 MAXDOP 다음과 같이 결정됩니다.

MAXDOP 제한은 작업따라 설정됩니다. 요청 또는 쿼리 제한당이 아닙니다. 병렬 쿼리를 실행하는 동안 단일 요청은 스케줄러할당된 여러 작업을 생성할 수 있습니다. 자세한 내용은 스레드 및 작업 아키텍처 가이드참조하세요.

쿼리가 컴파일 시간(MAXDOP = 1)에 직렬로 표시되면 워크로드 그룹 또는 서버 구성 설정에 관계없이 런타임에 병렬 처리로 실행할 수 없습니다. 쿼리에 대해 MAXDOP 결정된 후에는 메모리 압력으로 인해 낮출 수 있습니다. 워크로드 그룹 재구성은 메모리 부여 큐에서 대기 중인 쿼리에 영향을 주지 않습니다.

캐시된 계획

MAX_DOP같은 설정에 영향을 주는 계획을 변경하면 DBCC FREEPROCCACHE (<pool_name>)실행한 후에만 새 설정이 이전에 캐시된 계획에 적용됩니다. 여기서 <pool_name> 현재 워크로드 그룹에서 사용하는 리소스 관리자 리소스 풀의 이름입니다.

  • MAX_DOP 1로 변경하는 경우 병렬 계획이 직렬 모드에서 실행되므로 DBCC FREEPROCCACHE 실행할 필요가 없습니다. 그러나 이러한 계획은 직렬 계획으로 컴파일된 계획보다 덜 효율적일 수 있습니다.
  • MAX_DOP 1에서 0으로 변경하거나 1보다 큰 값을 변경하는 경우 DBCC FREEPROCCACHE 실행할 필요가 없습니다. 그러나 직렬 계획은 병렬로 실행할 수 없으므로 각 캐시를 지우면 병렬 처리를 사용하여 새 계획을 컴파일할 수 있습니다.

경고

둘 이상의 워크로드 그룹과 연결된 리소스 풀에서 캐시된 계획을 지우면 <pool_name>식별된 사용자 정의 리소스 풀을 사용하는 모든 워크로드 그룹에 영향을 줍니다.

인덱스 만들기

성능상의 이유로 인덱스 만들기는 처음에 부여된 것보다 더 많은 메모리 작업 영역을 사용할 수 있습니다. 리소스 관리자는 이 특별 처리를 지원합니다. 그러나 초기 권한 부여 및 추가 메모리 부여는 워크로드 그룹 및 리소스 풀 설정에 의해 제한됩니다.

분할된 테이블에서 정렬되지 않은 인덱스를 만드는 데 사용되는 메모리는 관련된 파티션 수에 비례합니다. 필요한 총 메모리가 REQUEST_MAX_MEMORY_GRANT_PERCENT 워크로드 그룹 설정에 의해 적용되는 쿼리당 제한을 초과하면 인덱스 생성이 실패할 수 있습니다. default 워크로드 그룹을 사용하면 쿼리가 이전 버전과의 호환성을 위해 시작하는 데 필요한 최소 메모리로 쿼리당 제한을 초과할 수 있으므로 default 리소스 풀에 충분한 총 메모리가 있는 경우 default 워크로드 그룹을 사용하여 동일한 인덱스를 만들 수 있습니다.

권한을

CONTROL SERVER 권한이 필요합니다.

예제

다음 예제에서는 기본 그룹의 요청 중요성을 MEDIUMLOW변경하는 방법을 보여 줍니다.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

다음 예제에서는 현재 풀에 있는 풀에서 default 풀로 워크로드 그룹을 이동하는 방법을 보여줍니다.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

SQL Server

SQL Managed Instance

* Azure Synapse
분석 *
 

 

Azure Synapse Analytics

기존 워크로드 그룹을 변경합니다.

실행 중인 요청과 대기 중인 요청이 있는 시스템에서 ALTER WORKLOAD GROUP 동작하는 방법에 대한 자세한 내용은 아래 ALTER WORKLOAD GROUP 동작 섹션을 참조하세요.

CREATE WORKLOAD GROUP 대한 제한 사항은 적용됩니다. 매개 변수를 수정하기 전에 sys.workload_management_workload_groups 쿼리하여 값이 허용 가능한 범위 내에 있는지 확인합니다.

통사론

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 ] )
  [ ; ]

인수

group_name

변경 중인 기존 사용자 정의 워크로드 그룹의 이름입니다. group_name 변경할 수 없습니다.

MIN_PERCENTAGE_RESOURCE =

값은 0에서 100까지의 정수 범위입니다. MIN_PERCENTAGE_RESOURCE 변경할 때 모든 워크로드 그룹의 MIN_PERCENTAGE_RESOURCE 합계는 100을 초과할 수 없습니다. MIN_PERCENTAGE_RESOURCE 변경하려면 명령이 완료되기 전에 실행 중인 모든 쿼리가 워크로드 그룹에서 완료되어야 합니다. 자세한 내용은 이 문서의 ALTER WORKLOAD GROUP 동작 섹션을 참조하세요.

CAP_PERCENTAGE_RESOURCE =

값은 1에서 100까지의 정수 범위입니다. CAP_PERCENTAGE_RESOURCE 값은 MIN_PERCENTAGE_RESOURCE보다 커야 합니다. CAP_PERCENTAGE_RESOURCE 변경하려면 명령이 완료되기 전에 실행 중인 모든 쿼리가 워크로드 그룹에서 완료되어야 합니다. 자세한 내용은 이 문서의 ALTER WORKLOAD GROUP 동작 섹션을 참조하세요.

REQUEST_MIN_RESOURCE_GRANT_PERCENT =

0.75에서 100.00 사이의 범위가 있는 10진수입니다. REQUEST_MIN_RESOURCE_GRANT_PERCENT 값은 MIN_PERCENTAGE_RESOURCE 요소여야 하며 CAP_PERCENTAGE_RESOURCE 미만이어야 합니다.

REQUEST_MAX_RESOURCE_GRANT_PERCENT =

10진수이며 REQUEST_MIN_RESOURCE_GRANT_PERCENT 이상이어야 합니다.

IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

워크로드 그룹에 대한 요청의 기본 중요도를 변경합니다.

QUERY_EXECUTION_TIMEOUT_SEC = 값

쿼리가 취소되기 전에 실행할 수 있는 최대 시간(초)을 변경합니다. 값은 0이거나 양의 정수여야 합니다. 값의 기본 설정은 0이며, 이는 무제한을 의미합니다.

권한을

CONTROL DATABASE 권한이 필요합니다.

본보기

아래 예제에서는wgDataLoads라는 워크로드 그룹에 대한 카탈로그 뷰의 값을 확인하고 값을 변경합니다.

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 동작

언제든지 시스템에는 세 가지 유형의 요청이 있습니다.

  • 아직 분류되지 않은 요청입니다.
  • 개체 잠금 또는 시스템 리소스에 대해 분류되고 대기 중인 요청입니다.
  • 분류되고 실행되는 요청입니다.

변경되는 워크로드 그룹의 속성에 따라 설정이 적용되는 시기는 다릅니다.

중요도 또는 query_execution_timeout

중요도 및 query_execution_timeout 속성의 경우 분류하지 않은 요청은 새 구성 값을 선택합니다. 대기 중 및 실행 중인 요청은 이전 구성을 사용하여 실행됩니다. ALTER WORKLOAD GROUP 요청은 워크로드 그룹에 실행 중인 쿼리가 있는지와 관계없이 즉시 실행됩니다.

REQUEST_MIN_RESOURCE_GRANT_PERCENT 또는 REQUEST_MAX_RESOURCE_GRANT_PERCENT

REQUEST_MIN_RESOURCE_GRANT_PERCENT 및 REQUEST_MAX_RESOURCE_GRANT_PERCENT 경우 실행 중인 요청은 이전 구성으로 실행됩니다. 대기 중인 요청 및 비 분류된 요청은 새 구성 값을 선택합니다. ALTER WORKLOAD GROUP 요청은 워크로드 그룹에 실행 중인 쿼리가 있는지와 관계없이 즉시 실행됩니다.

MIN_PERCENTAGE_RESOURCE 또는 CAP_PERCENTAGE_RESOURCE

MIN_PERCENTAGE_RESOURCE 및 CAP_PERCENTAGE_RESOURCE 경우 실행 중인 요청은 이전 구성으로 실행됩니다. 대기 중인 요청 및 비 분류된 요청은 새 구성 값을 선택합니다.

MIN_PERCENTAGE_RESOURCE 및 CAP_PERCENTAGE_RESOURCE 변경하려면 변경 중인 워크로드 그룹에서 실행 중인 요청을 드레이닝해야 합니다. MIN_PERCENTAGE_RESOURCE 줄이면 해제된 리소스가 공유 풀로 반환되어 다른 워크로드 그룹의 요청에서 활용할 수 있습니다. 반대로 MIN_PERCENTAGE_RESOURCE 늘리면 공유 풀에서 필요한 리소스만 활용하는 요청이 완료될 때까지 기다립니다. ALTER WORKLOAD GROUP 작업은 공유 풀에서 실행되기를 기다리는 다른 요청보다 공유 리소스에 대한 우선 순위가 지정된 액세스 권한을 갖습니다. MIN_PERCENTAGE_RESOURCE 합계가%100을 초과하면 ALTER WORKLOAD GROUP 요청이 즉시 실패합니다.

잠금 동작

워크로드 그룹을 변경하려면 모든 워크로드 그룹에서 전역 잠금이 필요합니다. 워크로드 그룹을 변경하라는 요청은 이미 제출된 작업 그룹 만들기 또는 삭제 요청 뒤에 큐에 대기합니다. alter 문의 일괄 처리가 한 번에 제출되면 제출된 순서대로 처리됩니다.

참고 항목