sys.dm_exec_query_resource_semaphores(Transact-SQL)

적용 대상:SQL 서버Azure SQL DatabaseAzure SQL Managed InstanceAzure 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, S0S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, 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)