sys.dm_exec_query_resource_semaphores(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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, S0 및 S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, 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)