리소스 관리자 DDL 및 시스템 뷰
리소스 관리자의 모든 측면에 대해 리소스 관리자 DDL 명령, 카탈로그 뷰 및 동적 관리 뷰를 사용할 수 있습니다. 리소스 관리자와 관련된 새 뷰 외에도 기존 시스템 뷰가 리소스 관리자에 대한 정보를 포함하도록 수정되었습니다. 이 항목에서는 다음과 같은 문과 뷰에 대해 간략하게 설명합니다.
작업 그룹, 리소스 풀 및 리소스 관리자의 명령을 비롯한 DDL 명령
카탈로그 및 동적 관리 뷰를 비롯한 리소스 관리자 시스템 뷰
리소스 관리자를 지원하도록 업데이트된 SQL Server 시스템 뷰
리소스 관리자를 지원하기 위한 SQL Server 이벤트 클래스 업데이트 및 새 이벤트 클래스
DDL 문
리소스 관리자는 리소스 관리자 세션의 모든 측면을 구성하는 데 사용할 수 있는 일곱 개의 DDL 명령을 제공합니다. 여기에는 작업 그룹 및 리소스 풀을 위한 CREATE, ALTER 및 DROP 명령뿐 아니라 구성 변경 내용을 적용하는 ALTER RESOURCE GOVERNOR RECONFIGURE 문도 포함되어 있습니다.
다음은 리소스 관리자 DDL 명령에 대한 주요 참고 사항입니다.
CREATE, ALTER 및 DROP 문은 저장된 메타데이터에 대해 작동하며 트랜잭션 문입니다. 그러나 이러한 문의 실행이 완료되어도 변경 내용이 적용되지 않으므로 변경 내용을 적용하려면 ALTER RESOURCE GOVERNOR RECONFIGURE 문을 실행해야 합니다.
위의 문은 여러 사용자가 동일한 구성을 동시에 수정하는 것을 방지하는 트랜잭션에 포함될 수 있습니다. 이 작업은 문과 함께 BEGIN TRANSACTION 및 COMMIT TRANSACTION을 사용하여 수행됩니다. 트랜잭션에 보유된 모든 잠금은 sys.dm_tran_locks에서 확인할 수 있으며, 필요한 경우 트랜잭션을 중지할 수 있습니다.
[!참고]
반드시 그래야 하는 것은 아니지만 리소스 관리자 DDL 문을 사용할 때는 트랜잭션 구문을 사용하는 것이 좋습니다. 하지만 ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVENOR RECONFIGURE 및 ALTER RESOURCE GOVERNOR RESET STATISTICS는 사용자 트랜잭션에 속할 수 없습니다.
ALTER…RECONFIGURE 문은 메타데이터를 메모리에 로드하며 실패할 수 있습니다. 문은 롤백할 수 없습니다. 문이 실패하면 메타데이터의 변경 내용이 메모리에 복사되지 않습니다. 문이 성공하면 변경 내용이 적용됩니다. ALTER…RECONFIGURE는 트랜잭션 문이 아니며 변경 내용은 롤백될 수 없습니다.
리소스 풀 명령
다음 표에서 설명하는 명령을 사용하여 리소스 풀을 구성할 수 있습니다.
DDL 문 |
설명 |
---|---|
리소스 풀을 만듭니다. |
|
리소스 풀의 구성을 변경합니다. 이 문은 저장된 구성 메타데이터에 변경 내용을 기록합니다. 이 문을 실행한 후에는 ALTER RESOURCE GOVERNOR 문을 실행하여 메타데이터 정보를 메모리 내 구성에 기록해야 합니다. |
|
리소스 풀을 삭제합니다. |
리소스 관리자는 리소스 풀을 구성하는 데 사용할 수 있는 네 개의 매개 변수를 제공합니다. 이러한 매개 변수는 다음과 같습니다.
최소 및 최대 CPU 사용 비율
최소 및 최대 메모리 사용 비율
리소스 풀 구성의 변경 내용에 따라 전환 기간이 있을 수 있고 이 전환 기간 동안 활성 또는 대기 중인 요청을 처리하기 위해 알려진 동작이 발생할 수 있습니다. 자세한 내용은 리소스 관리자 상태을 참조하십시오.
작업 그룹 명령
다음 표에서 설명하는 명령을 사용하여 작업 그룹을 구성할 수 있습니다.
DDL 명령 |
설명 |
---|---|
작업 그룹을 만들어 리소스 풀과 연결합니다. |
|
작업 그룹의 구성을 변경합니다. 이 문은 저장된 구성 메타데이터에 변경 내용을 기록합니다. 이 문을 실행한 후에는 ALTER RESOURCE GOVERNOR 문을 실행하여 메타데이터 정보를 메모리 내 구성에 기록해야 합니다. |
|
작업 그룹을 삭제합니다. |
리소스 관리자는 구성 그룹을 구성하는 데 사용할 수 있는 다음과 같은 여섯 개의 매개 변수를 제공합니다.
요청에 사용할 수 있는 최대 메모리 양
요청에 사용할 수 있는 최대 CPU 비율
요청에 대한 리소스 제한 시간
요청의 상대적 중요도
작업 그룹에 대한 최대 요청 수
작업 그룹이 포함될 리소스 풀
작업 그룹 구성의 변경 내용에 따라 변경 내용이 적용될 때 활성 또는 대기 중인 요청을 처리하기 위해 알려진 동작이 발생합니다. 자세한 내용은 리소스 관리자 상태를 참조하십시오.
리소스 관리자 명령
다음 표에서 설명하는 명령을 사용하여 리소스 관리자를 구성할 수 있습니다.
DDL 명령 |
설명 |
---|---|
ALTER 명령을 사용하여 지정한 구성 변경 내용을 적용하고, RESOURCE GOVERNOR를 사용하거나 사용하지 않도록 설정하고, 분류자 함수를 등록하거나 통계를 다시 설정합니다. |
ALTER RESOURCE GOVERNOR 문은 다음 동작을 수행하는 데 사용됩니다.
ALTER WORKLOAD GROUP 문 또는 ALTER RESOURCE POOL 문이 발행될 때 지정된 구성 변경 내용 적용
리소스 관리자를 사용하거나 사용하지 않도록 설정. 구성 변경 내용을 적용할 때에도 사용됩니다.
요청 분류 함수 등록
모든 작업 그룹 및 리소스 풀에 대해 통계 다시 설정
리소스 관리자 구성의 변경 내용에 따라 변경 내용이 적용될 때 활성 또는 대기 중인 요청을 처리하기 위해 알려진 동작이 발생합니다. 자세한 내용은 리소스 관리자 상태를 참조하십시오.
리소스 관리자 뷰
다음은 리소스 관리자와 관련된 카탈로그 및 동적 관리 뷰입니다.
카탈로그 뷰
다음 표에서는 리소스 관리자 카탈로그 뷰에 대해 설명합니다.
이름 |
설명 |
---|---|
저장된 리소스 관리자 상태를 반환합니다. |
|
저장된 리소스 풀 구성을 반환합니다. 뷰의 각 행에 따라 풀의 구성이 결정됩니다. |
|
저장된 작업 그룹 구성을 반환합니다. |
동적 관리 뷰
다음 표에서는 리소스 관리자 동적 관리 뷰에 대해 설명합니다.
이름 |
설명 |
---|---|
작업 그룹 통계 및 작업 그룹의 현재 메모리 내 구성을 반환합니다. |
|
현재 리소스 풀 상태, 리소스 풀의 현재 구성 및 리소스 풀 통계에 대한 정보를 반환합니다. |
|
리소스 관리자에 대한 현재 메모리 내 구성을 포함하는 행을 반환합니다. |
SQL Server 뷰
여러 SQL Server 시스템 뷰가 업데이트되었으며 리소스 관리자에 대한 정보를 제공합니다.
동적 관리 뷰
다음 표에서는 SQL Server 동적 관리 뷰에 대해 설명합니다.
이름 |
설명 |
---|---|
실행하는 데 필요한 메모리가 이미 부여되었거나 아직 부여되지 않은 쿼리에 대한 정보를 반환합니다. 메모리 부여를 기다릴 필요가 없는 쿼리는 이 뷰에 나타나지 않습니다. 리소스 관리자에 다음 열이 추가됩니다.
|
|
현재 쿼리 리소스 세마포 상태에 대한 정보를 반환합니다. sys.dm_exec_query_resource_semaphores는 일반적인 쿼리 실행 메모리 상태를 제공하며 이를 통해 시스템이 충분한 메모리에 액세스할 수 있는지 여부를 확인할 수 있습니다. 리소스 관리자에 다음 열이 추가됩니다.
|
|
SQL Server에서 인증된 세션당 행 하나를 반환합니다. 리소스 관리자에 다음 열이 추가됩니다.
|
|
SQL Server에서 실행 중인 각 요청에 대한 정보를 반환합니다. 리소스 관리자에 다음 열이 추가됩니다.
|
|
SQL Server에서 빠른 쿼리 실행을 위해 캐시하는 각 쿼리 계획에 대한 행을 반환합니다. 리소스 관리자에 다음 열이 추가됩니다.
|
|
SQL Server 내부의 할당은 SQL Server 메모리 관리자를 사용합니다. 리소스 관리자에 다음 열이 추가됩니다.
|
|
실행 중인 스레드로 인해 발생한 대기에 대한 정보를 반환합니다. 이 뷰를 사용하여 SQL Server와 관련된 성능 문제뿐 아니라 특정 쿼리 및 일괄 처리와 관련된 성능 문제도 진단할 수 있습니다. |
SQL Server 이벤트 클래스 참조
리소스 관리자를 지원하기 위해 여러 SQL Server 이벤트 클래스가 업데이트되었으며 새 이벤트 클래스가 추가되었습니다.
이름 |
설명 |
---|---|
이 이벤트 클래스는 리소스 관리자가 REQUEST_MAX_CPU_TIME_SEC에 지정된 CPU 임계값을 초과하는 쿼리를 감지했음을 나타냅니다. |
|
이 이벤트 클래스는 LOGON 트리거나 리소스 관리자 분류자 함수가 실행을 시작하는 시간을 나타냅니다. |
|
이 이벤트 클래스는 LOGON 트리거나 리소스 관리자 분류자 함수가 실행을 종료하는 시간을 나타냅니다. |