ALTER RESOURCE GOVERNOR(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
이 명령문은 SQL Server에서 다음 Resource Governor 동작을 수행하는 데 사용됩니다.
CREATE|ALTER|DROP WORKLOAD GROUP 또는 CREATE|ALTER|DROP RESOURCE POOL 또는 CREATE|ALTER|DROP EXTERNAL RESOURCE POOL 문이 발행될 때 지정된 구성 변경 내용을 적용합니다.
리소스 관리자를 사용하거나 사용하지 않도록 설정합니다.
들어오는 요청에 대한 분류를 구성합니다.
작업 그룹 및 리소스 풀 통계를 다시 설정합니다.
디스크 볼륨당 최대 I/O 작업을 설정합니다.
구문
ALTER RESOURCE GOVERNOR
{ DISABLE | RECONFIGURE }
| WITH ( CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } )
| RESET STATISTICS
| WITH ( MAX_OUTSTANDING_IO_PER_VOLUME = value )
[ ; ]
인수
DISABLE
리소스 관리자를 사용하지 않습니다. 리소스 관리자를 사용하지 않도록 설정하면 다음과 같은 결과가 나타납니다.
분류자 함수가 실행되지 않습니다.
모든 새 연결이 자동으로 기본 그룹으로 분류됩니다.
시스템에서 시작한 요청이 내부 작업 그룹으로 분류됩니다.
기존의 모든 작업 그룹 및 리소스 풀 설정이 해당 기본값으로 다시 설정됩니다. 이 경우 제한에 도달해도 이벤트가 발생하지 않습니다.
정상적인 시스템 모니터링은 영향을 받지 않습니다.
구성을 변경할 수 있지만 리소스 관리자를 사용하도록 설정할 때까지 변경 내용이 적용되지 않습니다.
SQL Server를 다시 시작할 때 리소스 관리자는 구성을 로드하지 않고 대신 기본 및 내부 그룹과 풀만 사용합니다.
RECONFIGURE
리소스 관리자가 사용되지 않는 경우 RECONFIGURE가 리소스 관리자를 사용하도록 설정합니다. 리소스 관리자를 사용하도록 설정하면 다음과 같은 결과가 나타납니다.
작업 그룹에 해당 작업을 할당할 수 있도록 새 연결에 대해 분류자 함수가 실행됩니다.
리소스 관리자 구성에 지정된 리소스 제한이 강제로 적용됩니다.
리소스 관리자를 사용하도록 설정하기 전부터 있던 요청이 리소스 관리자가 사용되지 않을 때 수행된 구성 변경 내용의 영향을 받습니다.
Resource Governor가 실행되고 있을 때 RECONFIGURE는 CREATE|ALTER|DROP WORKLOAD GROUP 또는 CREATE|ALTER|DROP RESOURCE POOL 또는 CREATE|ALTER|DROP EXTERNAL 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)를 참조하세요.
MAX_OUTSTANDING_IO_PER_VOLUME = value
적용 대상: SQL Server 2014(12.x) 이상
디스크 볼륨당 최대 지연 I/O 작업을 설정합니다. 모든 크기의 읽기 또는 쓰기가 여기에 해당합니다. MAX_OUTSTANDING_IO_PER_VOLUME의 최대값은 100입니다. 비율이 아닙니다. 이 설정은 디스크 볼륨의 IO 특성에 맞게 IO 리소스 관리를 튜닝하도록 디자인되었습니다. 이 설정은 다른 풀의 MAX_IOPS_PER_VOLUME이 무제한으로 설정되어 있는 경우에도 SQL Server에서 리소스 풀의 최소 IOPS를 충족할 수 있도록 시스템 수준 안전 검사를 제공합니다. MAX_IOPS_PER_VOLUME에 대한 자세한 내용은 CREATE RESOURCE POOL을 참조하세요.
설명
사용자 트랜잭션 내에서는 ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE 및 ALTER RESOURCE GOVERNOR RESET STATISTICS를 사용할 수 없습니다.
RECONFIGURE 매개 변수는 Resource Governor 구문의 일부이며 별도의 DLL 문인 RECONFIGURE와 혼동해서는 안 됩니다.
DDL 문을 실행하기 전에 리소스 관리자 상태에 대해 잘 알고 있는 것이 좋습니다. 자세한 내용은 Resource Governor를 참조하세요.
사용 권한
CONTROL SERVER 권한이 필요합니다.
예
A. 리소스 관리자 시작
SQL Server를 처음 설치하면 리소스 관리자를 사용할 수 없습니다. 다음 예에서는 리소스 관리자를 시작합니다. 이 문이 실행된 후에 리소스 관리자가 실행되면 미리 정의된 작업 그룹과 리소스 풀을 사용할 수 있습니다.
ALTER RESOURCE GOVERNOR RECONFIGURE;
B. 기본 그룹에 새 세션 할당
다음 예에서는 리소스 관리자 구성에서 기존 분류자 함수를 제거하여 기본 작업 그룹에 모든 새 세션을 할당합니다. 분류자 함수로 지정된 함수가 없으면 모든 새 세션이 기본 작업 그룹에 할당됩니다. 이 변경 내용은 새 세션에만 적용되고 기존 세션에는 적용되지 않습니다.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
C. 분류자 함수 작성 및 등록
다음 예에서는 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
D. 통계 다시 설정
다음 예에서는 모든 작업 그룹 및 리소스 풀 통계를 다시 설정합니다.
ALTER RESOURCE GOVERNOR RESET STATISTICS;
E. MAX_OUTSTANDING_IO_PER_VOLUME 옵션 설정
다음 예에서는 MAX_OUTSTANDING_IO_PER_VOLUME 옵션을 20으로 설정합니다.
ALTER RESOURCE GOVERNOR
WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);
참고 항목
CREATE RESOURCE POOL(Transact-SQL)
ALTER RESOURCE POOL(Transact-SQL)
DROP RESOURCE POOL(Transact-SQL)
CREATE EXTERNAL RESOURCE POOL(Transact-SQL)
DROP EXTERNAL RESOURCE POOL(Transact-SQL)
ALTER EXTERNAL 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)