자습서: 리소스 관리자 구성 예제 및 모범 사례
적용 대상:SQL ServerAzure SQL Managed Instance
이 문서에는 리소스 관리자를 구성하고 구성이 예상대로 작동하는지 확인하는 데 도움이 되는 연습 예제가 포함되어 있습니다. 간단한 예제로 시작하고 더 복잡한 예제로 진행합니다.
또한 이 문서에는 모니터링 쿼리를
모든 예제에서는 처음에 리소스 관리자가 비활성화되고 기본 설정을 사용하며 사용자 정의 리소스 풀, 워크로드 그룹 및 분류자 함수가 없다고 가정합니다.
메모
Azure SQL Managed Instance의 경우 리소스 관리자 구성을 수정하려면 master
데이터베이스의 컨텍스트에 있어야 합니다.
기본 그룹 수정
이 예제에서는 리소스 관리자를 사용하여 모든 사용자 쿼리에 대한 메모리 부여의 최대 크기를 제한합니다. 이 작업은 default
워크로드 그룹에 대한 REQUEST_MAX_MEMORY_GRANT_PERCENT
설정을 기본 25%에서 10%으로 줄여 수행합니다. 이 예제에서는 분류자 함수사용하지 않습니다. 즉, 로그인 처리는 영향을 받지 않으며 모든 사용자 세션은 default
워크로드 그룹에서 계속 분류됩니다.
다른 쿼리가 너무 많은 메모리를 차지하여 쿼리가 메모리를 기다리는 경우 메모리 할당 크기를 제한해야 할 수 있습니다. 자세한 내용은 SQL Server메모리 부여로 인한 성능 저하 또는 메모리 부족 문제 해결을 참조하세요.
기본 워크로드 그룹을 수정합니다.
ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 10);
리소스 관리자가 구성을 효과적으로 수행할 수 있도록 합니다.
ALTER RESOURCE GOVERNOR RECONFIGURE;
메모리 부여의 새 최대 크기를 포함하여 새 설정의 유효성을 검사합니다.
SELECT group_id, wg.name AS workload_group_name, rp.name AS resource_pool_name, wg.request_max_memory_grant_percent_numeric AS request_max_memory_grant_percent, rp.max_memory_kb * wg.request_max_memory_grant_percent_numeric AS request_max_memory_grant_size_kb FROM sys.resource_governor_workload_groups AS wg INNER JOIN sys.dm_resource_governor_resource_pools AS rp ON wg.pool_id = rp.pool_id;
초기 구성으로 되돌리려면 다음 스크립트를 실행합니다.
ALTER RESOURCE GOVERNOR DISABLE; ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 25);
사용자 정의 워크로드 그룹 사용
이 예제에서는 리소스 관리자를 사용하여 특정 애플리케이션 이름을 가진 세션의 모든 요청이 DOP(병렬 처리 수준)가 4보다 높은 상태에서 실행되지 않도록 합니다. 이 작업은 MAX_DOP
설정이 4로 설정된 워크로드 그룹으로 세션을 분류하여 수행됩니다.
최대 병렬 처리 수준을 구성하는 방법에 대한 자세한 내용은 Server 구성: 최대 병렬 처리 수준참조하세요.
DOP를 제한하는 워크로드 그룹을 만듭니다. 이 그룹은 특정 애플리케이션에 대해 DOP만 제한하려고 하지만 CPU, 메모리 또는 I/O 리소스를 예약하거나 제한하지 않기 때문에
default
리소스 풀을 사용합니다.CREATE WORKLOAD GROUP limit_dop WITH ( MAX_DOP = 4 ) USING [default];
분류자 함수를 만듭니다. 이 함수는 기본 제공 APP_NAME() 함수를 사용하여 클라이언트 연결 문자열에 지정된 애플리케이션 이름을 확인합니다. 애플리케이션 이름이
limited_dop_application
설정되면 함수는 DOP를 제한하는 워크로드 그룹의 이름을 반환합니다. 그렇지 않으면 함수는 워크로드 그룹 이름으로default
반환합니다.USE master; GO CREATE FUNCTION dbo.rg_classifier() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroupName sysname = N'default'; IF APP_NAME() = N'limited_dop_application' SELECT @WorkloadGroupName = N'limit_dop'; RETURN @WorkloadGroupName; END; GO
리소스 관리자 구성을 수정하여 구성을 효과적으로 만들고 리소스 관리자를 사용하도록 설정합니다.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
쿼리 sys.resource_governor_configuration 리소스 관리자가 사용하도록 설정되어 있고 우리가 만든 분류자 함수를 사용하고 있는지 확인합니다.
SELECT OBJECT_SCHEMA_NAME(classifier_function_id) AS classifier_schema_name, OBJECT_NAME(classifier_function_id) AS classifier_object_name, is_enabled FROM sys.resource_governor_configuration;
classifier_schema_name classifier_object_name is_enabled ---------------------- ---------------------- ---------- dbo rg_classifier 1
특정 애플리케이션 이름을 가진 세션이
limit_dop
워크로드 그룹으로 분류되고 다른 세션은default
워크로드 그룹에서 계속 분류되는지 확인합니다. sys.dm_exec_sessions 및 sys.resource_governor_workload_groups 시스템 뷰를 사용하여 현재 세션의 애플리케이션 이름 및 워크로드 그룹 이름을 반환하는 쿼리를 사용합니다.SQL Server Management Studio(SSMS)의 주 메뉴에서 파일을 선택한 후, 새데이터베이스 엔진 쿼리를 선택하십시오.
데이터베이스 엔진에 연결 대화 상자에서 워크로드 그룹과 분류자 함수를 만든 동일한 데이터베이스 엔진 인스턴스를 지정합니다. 추가 연결 매개 변수 탭을 선택하고
App=limited_dop_application
입력합니다. 따라서 SSMS는 인스턴스에 연결할 때limited_dop_application
애플리케이션 이름으로 사용합니다.선택 후 연결하여 새 연결을 엽니다.
동일한 쿼리 창에서 다음 쿼리를 실행합니다.
SELECT s.program_name AS application_name, wg.name AS workload_group_name, wg.max_dop FROM sys.dm_exec_sessions AS s INNER JOIN sys.resource_governor_workload_groups AS wg ON s.group_id = wg.group_id WHERE s.session_id = @@SPID;
세션이 최대 DOP가 4로 설정된
limit_dop
워크로드 그룹으로 분류되었음을 보여 주는 다음 출력이 표시됩니다.application_name workload_group_name max_dop ---------------- ------------------- ------- limited_dop_application limit_dop 4
위의 단계를 반복하지만 추가 연결 매개 변수 탭의 상자에 아무것도 입력하지 마세요. 출력이 변경되어 기본 SSMS 애플리케이션 이름 및 최대 DOP에 대한 기본
0
값이 있는default
워크로드 그룹이 표시됩니다.application_name workload_group_name max_dop ---------------- ------------------- ------- Microsoft SQL Server Management Studio - Query default 0
이 샘플의 초기 구성으로 되돌리려면 다음 T-SQL 스크립트를 실행합니다.
ALTER RESOURCE GOVERNOR DISABLE; ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL); DROP FUNCTION IF EXISTS dbo.rg_classifier; DROP WORKLOAD GROUP limit_dop;
여러 리소스 풀 및 워크로드 그룹 사용
이 예제에서는 리소스 관리자를 사용하여 주문 처리 애플리케이션에서 하루 중 시간에 따라 다른 워크로드 그룹 및 리소스 풀로 세션을 분류합니다. 이 구성은 사용량이 많은 처리 시간 동안 애플리케이션에 더 많은 리소스를 할당하고, 오프타임 동안 해당 리소스를 제한합니다. 이 예제에서는 애플리케이션이 장기 실행 세션을 사용하지 않는다고 가정합니다.
사용량이 많은 시간대와 사용량이 적은 시간대의 처리를 위해 두 개의 리소스 풀을 만듭니다.
-
peak_hours_pool
풀은MIN_CPU_PERCENT
을 통해 최소 20%의 평균 CPU 대역폭을 보장하며,MAX_CPU_PERCENT
을100
로 설정함으로써 CPU 대역폭을 제한하지 않습니다. -
off_hours_pool
풀은MIN_CPU_PERCENT
0
설정하여 CPU 대역폭을 예약하지 않지만MAX_CPU_PERCENT
50
설정하여 CPU 경합이 있을 때 CPU 대역폭을 50%로 제한합니다.
CREATE RESOURCE POOL peak_hours_pool WITH ( MIN_CPU_PERCENT = 20, MAX_CPU_PERCENT = 100 ); CREATE RESOURCE POOL off_hours_pool WITH ( MIN_CPU_PERCENT = 0, MAX_CPU_PERCENT = 50 );
리소스 풀은 CPU, 메모리 및 I/O와 같은 시스템 리소스를 예약하고 제한할 수 있습니다. 자세한 내용은 CREATE RESOURCE POOL참조하세요.
-
각각 각 리소스 풀에 대해 하나씩 두 개의 워크로드 그룹을 만듭니다.
-
peak_hours_group
는GROUP_MAX_REQUESTS
을 기본값인0
로 설정함으로써 동시 요청 수를 제한하지 않습니다. -
off_hours_group
는GROUP_MAX_REQUESTS
을200
로 설정함으로써 이 그룹으로 분류된 모든 세션의 동시 요청 수를 제한합니다.
CREATE WORKLOAD GROUP peak_hours_group WITH ( GROUP_MAX_REQUESTS = 0 ) USING peak_hours_pool; CREATE WORKLOAD GROUP off_hours_group WITH ( GROUP_MAX_REQUESTS = 200 ) USING off_hours_pool;
워크로드 그룹은 최대 요청 수, 최대 병렬 처리 수준 및 최대 메모리 부여 크기와 같은 정책을 정의합니다. 자세한 내용은 CREATE WORKLOAD GROUP을 참조하세요.
-
최대 및 비사용 시간 간격을 정의하는 테이블을 만들고 채우세요.
- 테이블의 각 행은 간격의 시작 및 종료 시간과 간격 동안 사용할 워크로드 그룹의 이름을 정의합니다.
- 각 간격의 시작 및 종료 시간은 포함됩니다.
- 테이블은 스키마 바인딩된 분류자 함수에서 사용할 수 있도록
master
데이터베이스에 만들어집니다.
USE master; GO CREATE TABLE dbo.workload_interval ( workload_group_name sysname NOT NULL, start_time time(7) NOT NULL, end_time time(7) NOT NULL, CONSTRAINT pk_workload_interval PRIMARY KEY (start_time, workload_group_name), CONSTRAINT ak_workload_interval_1 UNIQUE (end_time, workload_group_name), CONSTRAINT ck_workload_interval_1 CHECK (start_time < end_time) ); GO INSERT INTO dbo.workload_interval VALUES (N'off_hours_group', '00:00', '06:29:59.9999999'), (N'peak_hours_group', '06:30', '18:29:59.9999999'), (N'off_hours_group', '18:30', '23:59:59.9999999');
분류자 함수를 만듭니다.
- 테이블의 데이터에는 지정된 시간 동안 일치하는 단일 행이 있어야 합니다. 데이터가 해당 규칙을 위반하는 경우 함수는 워크로드 그룹 이름으로
default
반환합니다. - 다음 예제 함수는 기본 제공 APP_NAME() 함수에서 반환된 애플리케이션 이름이
order_processing
이외의 경우default
반환합니다.
USE master; GO CREATE OR ALTER FUNCTION dbo.rg_classifier() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroupName sysname = N'default'; SELECT @WorkloadGroupName = workload_group_name FROM dbo.workload_interval WHERE APP_NAME() = N'order_processing' AND CAST(GETDATE() AS time(7)) BETWEEN start_time AND end_time; IF @@ROWCOUNT > 1 SELECT @WorkloadGroupName = N'default'; RETURN @WorkloadGroupName; END; GO
- 테이블의 데이터에는 지정된 시간 동안 일치하는 단일 행이 있어야 합니다. 데이터가 해당 규칙을 위반하는 경우 함수는 워크로드 그룹 이름으로
선택적 단계입니다.
master
데이터베이스에서 테이블을 만드는 대신 테이블 반환 생성자 사용하여 분류자 함수에서 직접 시간 간격을 정의할 수 있습니다. 이는 데이터 크기가 작고 분류자 함수 조건이 자주 변경되지 않는 경우에 권장되는 방법입니다. 다음은master
테이블 대신 테이블 값을 반환하는 생성자를 사용하는 동일한 분류자의 예입니다.USE master; GO CREATE OR ALTER FUNCTION dbo.rg_classifier() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroupName sysname = N'default'; SELECT @WorkloadGroupName = workload_group_name FROM ( VALUES (CAST(N'off_hours_group' AS sysname), CAST('00:00' AS time(7)), CAST('06:29:59.9999999' AS time(7))), (CAST(N'peak_hours_group' AS sysname), CAST('06:30' AS time(7)), CAST('18:29:59.9999999' AS time(7))), (CAST(N'off_hours_group' AS sysname), CAST('18:30' AS time(7)), CAST('23:59:59.9999999'AS time(7))) ) AS wg (workload_group_name, start_time, end_time) WHERE APP_NAME() = N'order_processing' AND CAST(GETDATE() AS time(7)) BETWEEN start_time AND end_time; IF @@ROWCOUNT > 1 SELECT @WorkloadGroupName = N'default'; RETURN @WorkloadGroupName; END; GO
리소스 관리자 구성을 수정하여 구성을 효과적으로 만들고 리소스 관리자를 사용하도록 설정합니다.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
리소스 관리자가 활성화되어 있고, 지정된 분류자 함수를 사용하고 있으며, 이전 예제
유사한 단계를 사용하여 분류자 함수가 예상대로 작동하는지 확인합니다. 이번에는 SSMS 연결 대화 상자의 추가 연결 매개 변수 탭에 App=order_processing
을 입력하여, 분류자 함수에서 애플리케이션 이름과 일치하도록 합니다. 다음 쿼리를 실행하여 현재 세션에 대한 애플리케이션 이름, 워크로드 그룹, 리소스 풀 및 CPU 예약 및 제한을 확인합니다.SELECT s.program_name AS application_name, wg.name AS workload_group_name, wg.group_max_requests, rp.name AS resource_pool_name, rp.min_cpu_percent, rp.max_cpu_percent FROM sys.dm_exec_sessions AS s INNER JOIN sys.resource_governor_workload_groups AS wg ON s.group_id = wg.group_id INNER JOIN sys.resource_governor_resource_pools AS rp ON wg.pool_id = rp.pool_id WHERE s.session_id = @@SPID;
결과는 하루 중 시간에 따라 달라집니다. 예를 들어 현재 시간이 14:30인 경우 결과는
peak_hours_group
및peak_hours_pool
사용됨을 보여줍니다.application_name workload_group_name group_max_requests resource_pool_name min_cpu_percent max_cpu_percent ----------------- -------------------- ------------------ ------------------- --------------- --------------- order_processing peak_hours_group 0 peak_hours_pool 20 100
초기 구성으로 되돌리려면 다음 T-SQL 스크립트를 실행합니다.
ALTER RESOURCE GOVERNOR DISABLE; ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL); DROP FUNCTION IF EXISTS dbo.rg_classifier; DROP TABLE IF EXISTS dbo.workload_interval; DROP WORKLOAD GROUP peak_hours_group; DROP WORKLOAD GROUP off_hours_group; DROP RESOURCE POOL peak_hours_pool; DROP RESOURCE POOL off_hours_pool;
시스템 보기를 사용하여 리소스 관리자 모니터링
이 섹션의 예제 쿼리는 리소스 관리자 런타임 통계 및 동작을 모니터링하는 방법을 보여 줍니다.
리소스 관리자 통계는 마지막 서버가 다시 시작된 이후 누적됩니다. 특정 시간부터 통계를 수집해야 하는 경우 ALTER RESOURCE GOVERNOR RESET STATISTICS
문을 사용하여 통계를 다시 설정할 수 있습니다.
리소스 풀 런타임 통계
각 리소스 풀에 대해 리소스 관리자는 CPU 및 메모리 사용률, 메모리 부족 이벤트, 메모리 부여, I/O 및 기타 통계를 추적합니다. 자세한 내용은 sys.dm_resource_governor_resource_pools을 참조하십시오.
다음 쿼리는 모든 리소스 풀에 대해 사용 가능한 통계의 하위 집합을 반환합니다.
SELECT rp.pool_id,
rp.name AS resource_pool_name,
wg.workload_group_count,
rp.statistics_start_time,
rp.total_cpu_usage_ms,
rp.target_memory_kb,
rp.used_memory_kb,
rp.out_of_memory_count,
rp.active_memgrant_count,
rp.total_memgrant_count,
rp.total_memgrant_timeout_count,
rp.read_io_completed_total,
rp.write_io_completed_total,
rp.read_bytes_total,
rp.write_bytes_total,
rp.read_io_stall_total_ms,
rp.write_io_stall_total_ms
FROM sys.dm_resource_governor_resource_pools AS rp
OUTER APPLY (
SELECT COUNT(1) AS workload_group_count
FROM sys.dm_resource_governor_workload_groups AS wg
WHERE wg.pool_id = rp.pool_id
) AS wg;
워크로드 그룹 런타임 통계
각 워크로드 그룹에 대해 리소스 관리자는 CPU 시간, 요청 수, 차단된 작업, 잠금 대기 시간, 쿼리 최적화 및 기타 통계를 추적합니다. 자세한 내용은 sys.resource_governor_workload_groups참고하십시오.
다음 쿼리는 모든 워크로드 그룹에 대해 사용 가능한 통계의 하위 집합을 반환합니다.
SELECT wg.name AS workload_group_name,
rp.name AS resource_pool_name,
wg.statistics_start_time,
wg.total_request_count,
wg.total_cpu_usage_ms,
wg.blocked_task_count,
wg.total_lock_wait_time_ms,
wg.total_query_optimization_count,
wg.max_request_grant_memory_kb,
wg.active_parallel_thread_count,
wg.effective_max_dop,
wg.request_max_memory_grant_percent_numeric
FROM sys.dm_resource_governor_workload_groups AS wg
INNER JOIN sys.dm_resource_governor_resource_pools AS rp
ON wg.pool_id = rp.pool_id
워크로드 그룹 및 세션 특성별 세션 집계
다음 쿼리는 워크로드 그룹 전체의 세션 분포를 반환하고 각 워크로드 그룹에 대한 세션 통계를 집계합니다.
preconnect
상태의 세션 수가 많을수록 분류자 실행 속도가 느려질 수 있습니다.
SELECT wg.name AS workload_group_name,
rp.name AS resource_pool_name,
s.program_name AS application_name,
s.login_name,
s.host_name,
s.status,
d.name AS database_name,
MIN(s.login_time) AS first_login_time,
MAX(s.login_time) AS last_login_time,
MAX(s.last_request_start_time) AS last_request_start_time,
COUNT(1) AS session_count
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON s.group_id = wg.group_id
INNER JOIN sys.dm_resource_governor_resource_pools AS rp
ON wg.pool_id = rp.pool_id
INNER JOIN sys.databases AS d
ON s.database_id = d.database_id
GROUP BY wg.name,
rp.name,
s.program_name,
s.login_name,
s.host_name,
s.status,
d.name;
워크로드 그룹 및 요청 특성별 요청 집계
다음 쿼리는 워크로드 그룹에 대한 요청 분포를 반환하고 각 워크로드 그룹에 대한 요청 통계를 집계합니다.
SELECT wg.name AS workload_group_name,
rp.name AS resource_pool_name,
r.command,
r.status,
d.name AS database_name,
COUNT(1) AS request_count,
MIN(r.start_time) AS first_request_start_time,
MAX(r.start_time) AS last_request_start_time,
SUM(CAST(r.total_elapsed_time AS bigint)) AS total_elapsed_time_ms
FROM sys.dm_exec_requests AS r
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON r.group_id = wg.group_id
INNER JOIN sys.dm_resource_governor_resource_pools AS rp
ON wg.pool_id = rp.pool_id
INNER JOIN sys.databases AS d
ON r.database_id = d.database_id
GROUP BY wg.name,
rp.name,
r.command,
r.status,
d.name;
리소스 관리자 모범 사례
- DAC(전용 관리자 연결)를 구성하고 사용하는 방법을 알아봅니다. 자세한 내용은 데이터베이스 관리자용 진단 연결을 참조하세요. 리소스 관리자 구성이 오작동하는 경우 DAC를 사용하여 문제를 해결하거나 리소스 관리자사용하지 않도록
수 있습니다. - 리소스 풀을 구성할 때
MIN_CPU_PERCENT
,MIN_MEMORY_PERCENT
및MIN_IOPS_PER_VOLUME
에 큰 값을 지정하는 데 주의하세요.MIN
구성 설정은 리소스 풀에 대한 리소스를 예약하고default
풀을 포함한 다른 리소스 풀에서 사용할 수 없게 만듭니다. 자세한 내용은 리소스 풀만들기를 참조하세요. - 분류자 함수는 로그인 처리 시간을 연장합니다. 특히 쿼리가 큰 테이블을 사용하는 경우 분류자에서 복잡한 논리 및 장기 실행 또는 리소스 집약적 쿼리를 피합니다. 지나치게 복잡한 함수는 로그인 지연 또는 연결 시간 제한을 일으킬 수 있습니다.
- 분류자에서 테이블을 사용해야 하는데 테이블이 작고 대부분 정적인 경우 이 문서의 앞부분에서
예제와 같이 테이블 반환 생성자 대신 사용하는 것이 좋습니다. - 분류자에서 자주 수정된 테이블을 사용하지 않습니다. 그러면 로그인을 지연시키고 연결 시간 제한을 유발할 수 있는 차단 위험이 증가합니다. 다음 해결 방법은 위험을 완화할 수 있지만 잘못된 분류의 위험을 포함하여 단점이 있습니다.
-
NOLOCK
테이블 힌트 또는 동등한READUNCOMMITTED
힌트를 사용하는 것이 좋습니다. 자세한 내용은 READUNCOMMITTED참조하세요. - 분류자 함수의 시작 부분에
LOCK_TIMEOUT
설정을 사용하여 1,000밀리초와 같은 낮은 값으로 설정하는 것이 좋습니다. 자세한 내용은 SET LOCK_TIMEOUT참조하세요.
-
- 리소스 관리자 구성에서 참조되는 동안에는 분류자 함수를 수정할 수 없습니다. 그러나 다른 분류자 함수를 사용하도록 구성을 수정할 수 있습니다. 분류자를 변경하려면 분류자 함수 쌍을 만드는 것이 좋습니다. 예를 들어
dbo.rg_classifier_A()
및dbo.rg_classifier_B()
을 만들 수 있습니다. 분류자 논리를 변경해야 하는 경우 다음 단계를 수행합니다.- ALTER FUNCTION 문을 사용하여 함수 변경 내용을 현재 리소스 관리자 구성에 사용되지.
-
ALTER RESOURCE GOVERNOR 문을 사용하여 수정된 분류자를 활성화한 다음 리소스 관리자를 다시 구성합니다. 예를 들어:
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier_B); ALTER RESOURCE GOVERNOR RECONFIGURE;
- 변경이 다시 필요한 경우 다른 함수(
dbo.rg_classifier_A()
)를 사용하여 동일한 단계를 수행합니다.
- 리소스 관리자 구성은
master
데이터베이스에 저장됩니다. 주기적으로master
을 백업하고, 복원하는 방법을 알고 있어야 합니다. 자세한 내용은 백업 및 복원: 시스템 데이터베이스참조하세요.master
복원하는 데는 제한 사항이 있으므로 리소스 관리자 구성 스크립트의 복사본도 별도로 저장하는 것이 좋습니다.master
데이터베이스를 다시 빌드해야 하는 경우 스크립트에서 리소스 관리자 구성을 다시 만들 수 있습니다.
관련 콘텐츠
- 리소스 관리자
- 리소스 관리자 사용하도록 설정
- 리소스 관리자 리소스 풀
- 리소스 거버너 워크로드 그룹
- 템플릿을 사용하여 리소스 관리자 구성
- 리소스 관리자 속성 보기 및 수정
- ALTER RESOURCE GOVERNOR
- 리소스 풀 만들기
- 작업 부하 그룹 생성
- 함수 생성