적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
Microsoft Fabric의 SQL 데이터베이스
SQL Server의 현재 쿼리 리소스 세마포 상태에 대한 정보를 반환합니다. sys.dm_exec_query_resource_semaphores 일반 쿼리 실행 메모리 상태를 제공하며 시스템에서 충분한 메모리에 액세스할 수 있는지 여부를 확인할 수 있습니다. 이 보기는 sys.dm_os_memory_clerks 가져온 메모리 정보를 보완하여 서버 메모리 상태에 대한 전체 그림을 제공합니다. sys.dm_exec_query_resource_semaphores 일반 리소스 세마포에 대해 한 행을 반환하고 작은 쿼리 리소스 세마포에 대해 다른 행을 반환합니다. 작은 쿼리 세마포에는 다음 두 가지 요구 사항이 있습니다.
요청된 메모리 부여가 5MB 미만이어야 합니다.
쿼리 비용은 3단원 미만이어야 합니다.
참고 항목
Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름을 sys.dm_pdw_nodes_exec_query_resource_semaphores사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
| 열 이름 | 데이터 형식 | 설명 |
|---|---|---|
| resource_semaphore_id | smallint | 리소스 세마포의 고유하지 않은 ID입니다. 일반 리소스 세마포의 경우 0을 반환하고 작은 쿼리 리소스 세마포의 경우 1을 반환합니다. |
| target_memory_kb | bigint | 메모리 사용 대상(KB)을 부여합니다. |
| max_target_memory_kb | bigint | 최대 잠재적 대상(킬로바이트)입니다. 작은 쿼리 리소스 세마포에 대한 NULL입니다. |
| total_memory_kb | bigint | 리소스 세마포가 보유한 메모리(킬로바이트)입니다. 시스템이 메모리 압력을 받고 있거나 강제 최소 메모리가 자주 부여되는 경우 이 값은 target_memory_kb 또는 max_target_memory_kb 값보다 클 수 있습니다. 총 메모리는 사용 가능한 메모리와 부여된 메모리의 합계입니다. |
| available_memory_kb | bigint | 새 부여에 사용할 수 있는 메모리(킬로바이트)입니다. |
| granted_memory_kb | bigint | 부여된 총 메모리(킬로바이트)입니다. |
| used_memory_kb | bigint | 부여된 메모리의 물리적으로 사용되는 부분(킬로바이트)입니다. |
| grantee_count | int | 부여가 충족된 활성 쿼리 수입니다. |
| waiter_count | int | 부여가 충족되기를 기다리는 쿼리 수입니다. |
| timeout_error_count | bigint | 서버 시작 이후의 총 시간 제한 오류 수입니다. 작은 쿼리 리소스 세마포에 대한 NULL입니다. |
| forced_grant_count | bigint | 서버 시작 이후 강제 최소 메모리 부여의 총 수입니다. 작은 쿼리 리소스 세마포에 대한 NULL입니다. |
| pool_id | int | 이 리소스 세마포가 속한 리소스 풀의 ID입니다. |
| pdw_node_id | int |
적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW) 이 배포가 있는 노드의 식별자입니다. |
사용 권한
SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE 권한이 필요합니다.
SQL Database Basic, S0 및 S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 ##MS_ServerStateReader##서버 역할의 멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE 권한 또는 ##MS_ServerStateReader## 서버 역할의 멤버 자격이 필요합니다.
SQL Server 2022 이상에 대한 사용 권한
서버에 대한 SERVER PERFORMANCE STATE 권한이 필요합니다 VIEW .
설명
쿼리에서 ORDER BY 또는 집계가 포함된 동적 관리 뷰를 사용하는 경우 메모리 사용이 증가하여 해결하려는 문제가 악화될 수 있습니다.
문제 해결을 위해 sys.dm_exec_query_resource_semaphores 사용하지만 이후 버전의 SQL Server를 사용하는 애플리케이션에는 포함하지 않습니다.
데이터베이스 관리자는 리소스 관리자 기능을 사용하여 서버 리소스를 최대 20개의 리소스 풀에 배치할 수 있습니다. SQL Server 2012(11.x) 이상에서는 각 풀이 작은 독립 서버 인스턴스처럼 동작하며 2개의 세마포가 필요합니다.
참고 항목
실행 관련 동적 관리 뷰 및 함수(Transact-SQL)
sys.dm_exec_query_memory_grants(Transact-SQL)