sys.dm_exec_query_resource_semaphores(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

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 이상에 대한 권한

서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.

설명

쿼리에서 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)