ALTER WORKLOAD GROUP(Transact-SQL)

기존 리소스 관리자 작업 그룹 구성을 변경하고 필요할 경우 리소스 관리자 리소스 풀에 할당합니다.

항목 링크 아이콘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"
    SQL Server 2008가 설치될 때 만들어지는 리소스 관리자 기본 작업 그룹 또는 기존 사용자 정의 작업 그룹의 이름입니다.

    "default" 옵션은 시스템 예약어인 DEFAULT와의 충돌을 피하기 위해 ALTER WORKLOAD GROUP과 함께 사용될 경우 따옴표("") 또는 대괄호([])로 묶어야 합니다. 자세한 내용은 구분 식별자(데이터베이스 엔진)를 참조하십시오.

    [!참고]

    미리 정의된 작업 그룹과 리소스 풀은 모두 "default"와 같은 소문자 이름을 사용합니다. 대/소문자 구분 데이터 정렬을 사용하는 서버의 경우 이러한 사항을 고려해야 합니다. 대/소문자 구분 데이터 정렬(예: SQL_Latin1_General_CP1_CI_AS)을 사용하는 서버는 "default"와 "Default"를 똑같이 처리합니다.

  • IMPORTANCE = { LOW | MEDIUM | HIGH }
    작업 그룹에 있는 요청의 상대적 중요도를 지정합니다. 중요도는 다음 값 중 하나입니다.

    • LOW

    • MEDIUM(기본값)

    • HIGH

    [!참고]

    내부적으로 각 중요도 설정은 계산에 사용된 숫자로 저장됩니다.

    IMPORTANCE는 리소스 풀에 대해 로컬입니다. 같은 리소스 풀 내에 있는 다른 중요도의 작업 그룹은 서로 영향을 주지만 다른 리소스 풀의 작업 그룹에는 영향을 주지 않습니다.

  • REQUEST_MAX_MEMORY_GRANT_PERCENT =value
    단일 요청이 풀에서 사용할 수 있는 최대 메모리 양을 지정합니다. 이 비율은 MAX_MEMORY_PERCENT에서 지정한 리소스 풀 크기에 따라 바뀝니다.

    [!참고]

    지정된 양은 쿼리 실행 부여 메모리만 참조합니다.

    value는 0 또는 양의 정수여야 합니다. value의 허용 범위는 0에서 100까지입니다. value의 기본 설정은 25입니다.

    다음을 유의하십시오.

    • value를 0으로 설정하면 사용자 정의 작업 그룹에 SORT 및 HASH JOIN 작업이 있는 쿼리가 실행되지 않습니다.

    • 다른 동시 쿼리를 실행 중인 경우 서버가 사용 가능한 메모리를 충분히 따로 설정해 놓지 못할 수 있으므로 value를 71 이상의 값으로 설정하지 않는 것이 좋습니다. 71 이상의 값으로 설정하면 쿼리 시간 초과 오류 8645가 발생할 수 있습니다.

    [!참고]

    쿼리 메모리 요구 사항이 이 매개 변수에 지정된 제한을 초과하는 경우 서버는 다음을 수행합니다.

    사용자 정의 작업 그룹의 경우 서버는 메모리 요구 사항이 제한 아래 수준으로 낮아지거나 병렬 처리 수준이 1이 될 때까지 쿼리 병렬 처리 수준을 줄이려고 합니다. 그래도 쿼리 메모리 요구 사항이 제한보다 클 경우 오류 8657이 발생합니다.

    내부 및 기본 작업 그룹의 경우 서버는 쿼리가 필요한 메모리를 가져오도록 허용합니다.

    두 경우 모두 서버에 실제 메모리가 부족하면 시간 초과 오류 8645가 발생할 수 있습니다.

    리소스 관리자 오류 메시지에 대한 자세한 내용은 리소스 관리자 문제 해결을 참조하십시오.

  • REQUEST_MAX_CPU_TIME_SEC =value
    쿼리가 실패하기 전에 리소스를 사용할 수 있을 때까지 쿼리가 대기할 수 있는 최대 시간(초)을 지정합니다. value는 0이나 양의 정수여야 합니다. value의 기본 설정인 0은 쿼리 비용에 따른 내부 계산을 사용하여 최대 시간을 결정합니다.

    [!참고]

    최대 시간이 초과하는 경우 리소스 관리자가 요청을 종료하지는 않지만 이벤트가 생성됩니다. 자세한 내용은 CPU Threshold Exceeded 이벤트 클래스를 참조하십시오.

  • REQUEST_MEMORY_GRANT_TIMEOUT_SEC =value
    메모리(작업 버퍼 메모리)가 부여될 때까지 쿼리가 대기할 수 있는 최대 시간(초)을 지정합니다.

    [!참고]

    메모리 부여 제한 시간에 도달할 때마다 쿼리가 실패하지는 않습니다. 쿼리는 너무 많은 쿼리가 동시에 실행되는 경우에만 실패합니다. 그렇지 않을 경우 쿼리에 최소한의 메모리만 부여되어 쿼리 성능이 떨어질 수 있습니다.

    value는 양의 정수여야 합니다. value의 기본 설정인 0은 쿼리 비용에 따른 내부 계산을 사용하여 최대 시간을 결정합니다.

  • MAX_DOP =value
    병렬 요청의 DOP(병렬 처리 수준)를 지정합니다. value는 0 또는 양의 정수여야 합니다. value의 허용 범위는 0에서 64까지입니다. value를 기본값인 0으로 설정하면 서버는 최대 병렬 처리 수준을 선택합니다. 이것은 기본값이며 권장 설정입니다. value가 0일 때 서버에서 사용하는 최대값은 64입니다. MAX_DOP는 다음과 같이 처리합니다.

    • MAXDOP는 작업 그룹 MAX_DOP를 초과하지 않는 한 쿼리 힌트 역할을 합니다.

    • MAXDOP는 쿼리 힌트로서 항상 sp_configure 'max degree of parallelism'을 무시합니다.

    • 작업 그룹 MAX_DOP는 sp_configure 'max degree of parallelism'을 무시합니다.

    • 컴파일할 때 쿼리가 직렬(MAX_DOP = 1)로 표시되면 작업 그룹이나 sp_configure 설정에 관계없이 런타임에 병렬로 다시 변경할 수 없습니다.

    DOP은 구성된 후에 부여 메모리 부족 시에만 낮아질 수 있습니다. 작업 그룹 재구성은 부여 메모리 큐에서 대기하는 동안 표시되지 않습니다.

  • GROUP_MAX_REQUESTS =value
    작업 그룹에서 실행할 수 있는 최대 동시 요청 수를 지정합니다. value는 0이거나 양의 정수여야 합니다. value의 기본 설정인 0은 무제한 요청을 허용합니다.

  • USING { pool_name | "default" }
    실제로 작업 그룹을 리소스 풀에 넣는 pool_name으로 식별되는 사용자 정의 리소스 풀에 작업 그룹을 연결합니다. pool_name이 제공되지 않거나 USING 인수가 사용되지 않으면 작업 그룹은 미리 정의된 리소스 관리자 기본 풀에 놓입니다.

    "default" 옵션은 시스템 예약어인 DEFAULT와의 충돌을 피하기 위해 ALTER WORKLOAD GROUP과 함께 사용될 경우 따옴표("") 또는 대괄호([])로 묶어야 합니다. 자세한 내용은 구분 식별자(데이터베이스 엔진)를 참조하십시오.

    [!참고]

    "default" 옵션은 대/소문자를 구분합니다.

주의

ALTER WORKLOAD GROUP은 기본 그룹에서 허용됩니다.

작업 그룹 구성의 변경 내용은 ALTER RESOURCE GOVERNOR RECONFIGURE가 실행될 때까지 적용되지 않습니다.

DDL 문을 실행할 경우 리소스 관리자 상태에 대해 잘 알고 있는 것이 좋습니다. 자세한 내용은 리소스 관리자 상태를 참조하십시오.

REQUEST_MEMORY_GRANT_PERCENT: SQL Server 2005에서는 인덱스를 만들 때 향상된 성능을 위해 처음에 부여된 메모리보다 많은 작업 영역 메모리를 사용할 수 있습니다. 이러한 특별 처리는 SQL Server 2008의 리소스 관리자에서 지원됩니다. 그러나 초기 부여 및 추가 메모리 부여는 리소스 풀 및 작업 그룹 설정으로 제한됩니다.

분할된 테이블에서 인덱스 생성

정렬되지 않은 분할된 테이블에서 인덱스 생성에 사용되는 메모리는 관련된 파티션 수에 비례합니다. 필요한 총 메모리가 리소스 관리자 작업 그룹 설정에서 지정한 쿼리당 제한(REQUEST_MAX_MEMORY_GRANT_PERCENT)을 초과하면 이 인덱스 생성이 실행되지 않을 수 있습니다. "default" 작업 그룹에서는 쿼리가 SQL Server 2005 호환성을 위해 시작하는 데 필요한 최소 메모리를 포함하는 쿼리당 제한을 초과하게 되므로 "default" 리소스 풀에 이러한 쿼리를 실행할 수 있는 총 메모리가 구성되어 있는 경우 사용자가 "default" 작업 그룹에서 같은 인덱스 생성을 실행할 수 있습니다.

사용 권한

CONTROL SERVER 권한이 필요합니다.

다음 예에서는 기본 그룹에 있는 요청의 중요도를 MEDIUM에서 LOW로 변경하는 방법을 보여 줍니다.

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

다음 예에서는 들어 있는 풀의 작업 그룹을 기본 풀로 이동하는 방법을 보여 줍니다.

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

변경 내역

업데이트된 내용

REQUEST_MAX_MEMORY_GRANT_PERCENT 인수에 대한 설명에 "다음을 유의하십시오" 정보를 추가했습니다.