ALTER RESOURCE GOVERNOR(Transact-SQL)

이 명령은 다음과 같은 동작을 수행하는 데 사용됩니다.

  • CREATE|ALTER|DROP WORKLOAD GROUP 또는 CREATE|ALTER|DROP RESOURCE POOL 문이 발행될 때 지정된 구성 변경 내용을 적용합니다.

  • 리소스 관리자를 사용하거나 사용하지 않도록 설정합니다.

  • 들어오는 요청에 대한 분류를 구성합니다.

  • 작업 그룹 및 리소스 풀 통계를 다시 설정합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

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

인수

용어

정의

DISABLE | RECONFIGURE

DISABLE은 리소스 관리자를 사용하지 않도록 설정합니다. 리소스 관리자를 사용하지 않도록 설정하면 다음과 같은 결과가 나타납니다.

  • 분류자 함수가 실행되지 않습니다.

  • 모든 새 연결이 자동으로 기본 그룹으로 분류됩니다.

  • 시스템에서 시작한 요청이 내부 작업 그룹으로 분류됩니다.

  • 기존의 모든 작업 그룹 및 리소스 풀 설정이 해당 기본값으로 다시 설정됩니다. 이 경우 제한에 도달해도 이벤트가 발생하지 않습니다.

  • 정상적인 시스템 모니터링은 영향을 받지 않습니다.

  • 구성을 변경할 수 있지만 리소스 관리자를 사용하도록 설정할 때까지 변경 내용이 적용되지 않습니다.

  • SQL Server를 다시 시작할 때 리소스 관리자는 구성을 로드하지 않고 대신 기본 및 내부 그룹과 풀만 사용합니다.

리소스 관리자가 사용되지 않는 경우 RECONFIGURE가 리소스 관리자를 사용하도록 설정합니다. 리소스 관리자를 사용하도록 설정하면 다음과 같은 결과가 나타납니다.

  • 작업 그룹에 해당 작업을 할당할 수 있도록 새 연결에 대해 분류자 함수가 실행됩니다.

  • 리소스 관리자 구성에 지정된 리소스 제한이 강제로 적용됩니다.

  • 리소스 관리자를 사용하도록 설정하기 전부터 있던 요청이 리소스 관리자가 사용되지 않을 때 수행된 구성 변경 내용의 영향을 받습니다.

리소스 관리자가 실행되고 있을 때 RECONFIGURE는 CREATE|ALTER|DROP WORKLOAD GROUP 또는 CREATE|ALTER|DROP RESOURCE POOL 문이 실행될 때 요청된 구성 변경 내용을 적용합니다.

중요 정보중요

구성 변경 내용을 적용하려면 ALTER RESOURCE GOVERNOR RECONFIGURE를 실행해야 합니다.

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }

schema_name.function_name으로 지정한 분류 함수를 등록합니다. 이 함수는 모든 새 세션을 분류하고 세션 요청 및 쿼리를 작업 그룹에 할당합니다. NULL이 사용되면 새 세션이 기본 작업 그룹에 자동으로 할당됩니다.

RESET STATISTICS

모든 작업 그룹 및 리소스 풀에 대한 통계를 다시 설정합니다. 자세한 내용은 sys.dm_resource_governor_workload_groups(Transact-SQL)sys.dm_resource_governor_resource_pools(Transact-SQL)를 참조하십시오.

주의

사용자 트랜잭션 내에서는 ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE 및 ALTER RESOURCE GOVERNOR RESET STATISTICS를 사용할 수 없습니다.

RECONFIGURE 매개 변수는 리소스 관리자 구문의 일부이며 별도의 DLL 문인 RECONFIGURE와 혼동해서는 안 됩니다.

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

사용 권한

CONTROL SERVER 권한이 필요합니다.

1.리소스 관리자 시작

SQL Server를 처음 설치하면 리소스 관리자를 사용할 수 없습니다. 다음 예에서는 리소스 관리자를 시작합니다. 이 문이 실행된 후에 리소스 관리자가 실행되면 미리 정의된 작업 그룹과 리소스 풀을 사용할 수 있습니다.

ALTER RESOURCE GOVERNOR RECONFIGURE;

2.기본 그룹에 새 세션 할당

다음 예에서는 리소스 관리자 구성에서 기존 분류자 함수를 제거하여 기본 작업 그룹에 모든 새 세션을 할당합니다. 분류자 함수로 지정된 함수가 없으면 모든 새 세션이 기본 작업 그룹에 할당됩니다. 이 변경 내용은 새 세션에만 적용되고 기존 세션에는 적용되지 않습니다.

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

3.분류자 함수 작성 및 등록

다음 예에서는 dbo.rgclassifier_v1이라는 분류자 함수를 만듭니다. 이 함수는 사용자 이름이나 응용 프로그램 이름을 기반으로 모든 새 세션을 분류하고 특정 작업 그룹에 세션 요청과 쿼리를 할당합니다. 지정한 사용자 또는 응용 프로그램으로 매핑되지 않는 세션은 기본 작업 그룹에 할당됩니다. 그런 다음 분류자 함수가 등록되고 구성 변경 내용이 적용됩니다.

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

4.통계 다시 설정

다음 예에서는 모든 작업 그룹 및 풀 통계를 다시 설정합니다.

ALTER RESOURCE GOVERNOR RESET STATISTICS;

참고 항목

참조

CREATE RESOURCE POOL(Transact-SQL)

ALTER RESOURCE POOL(Transact-SQL)

DROP RESOURCE POOL(Transact-SQL)

CREATE WORKLOAD GROUP(Transact-SQL)

ALTER WORKLOAD GROUP(Transact-SQL)

DROP WORKLOAD GROUP(Transact-SQL)

sys.dm_resource_governor_workload_groups(Transact-SQL)

sys.dm_resource_governor_resource_pools(Transact-SQL)

개념

리소스 관리자