sys.dm_exec_query_resource_semaphores(Transact-SQL)
현재 쿼리 리소스 세마포 상태에 대한 정보를 반환합니다. sys.dm_exec_query_resource_semaphores는 일반적인 쿼리 실행 메모리 상태를 제공하며 이를 통해 시스템이 충분한 메모리에 액세스할 수 있는지 여부를 확인할 수 있습니다. 이 뷰는 sys.dm_os_memory_clerks에서 가져온 메모리 정보를 보완하여 서버 메모리 상태의 전체 현황을 보여 줍니다. sys.dm_exec_query_resource_semaphores는 일반 리소스 세마포와 작은 쿼리 리소스 세마포에 대해 각각 하나의 행을 반환합니다.
열 이름 |
데이터 형식 |
설명 |
---|---|---|
resource_semaphore_id |
smallint |
리소스 세마포의 고유하지 않은 ID입니다. 일반 리소스 세마포의 경우 0을 반환하고 작은 쿼리 리소스 세마포의 경우 1을 반환합니다.
참고
이 ID는 SQL Server 2008 이전 버전인 SQL Server 버전에서 고유합니다. 이러한 변경 내용은 쿼리 실행의 문제 해결에 영향을 줄 수 있습니다. 자세한 내용은 이 항목의 뒷부분에 나오는 "주의" 섹션을 참조하십시오.
|
target_memory_kb |
bigint |
메모리 사용 대상(KB)을 부여합니다. |
max_target_memory_kb |
bigint |
가능한 최대 대상(KB)입니다. 작은 쿼리 리소스 세마포의 경우 NULL이 됩니다. |
total_memory_kb |
bigint |
리소스 세마포가 보유한 메모리(KB)입니다. 시스템 메모리가 부족하거나 강제 적용된 최소 메모리가 자주 부여되는 경우 이 값은 target_memory_kb 또는 max_target_memory_kb 값보다 클 수 있습니다. 총 메모리는 사용 가능한 메모리와 부여된 메모리의 합계입니다. |
available_memory_kb |
bigint |
새 부여에 사용 가능한 메모리(KB)입니다. |
granted_memory_kb |
bigint |
부여된 총 메모리(KB)입니다. |
used_memory_kb |
bigint |
부여된 메모리 중에서 실제로 사용된 메모리(KB)입니다. |
grantee_count |
int |
부여가 만족된 활성 쿼리 수입니다. |
waiter_count |
int |
부여가 만족될 때까지 대기 중인 쿼리 수입니다. |
timeout_error_count |
bigint |
서버 시작 후 시간 초과 오류의 총 수입니다. 작은 쿼리 리소스 세마포의 경우 NULL이 됩니다. |
forced_grant_count |
bigint |
서버 시작 후 강제 적용된 최소 메모리 부여의 총 수입니다. 작은 쿼리 리소스 세마포의 경우 NULL이 됩니다. |
pool_id |
int |
이 리소스 세마포가 속한 리소스 풀의 ID입니다. |
사용 권한
서버에 대한 VIEW SERVER STATE 권한이 필요합니다.
주의
쿼리에서 ORDER BY 또는 집계가 포함된 동적 관리 뷰를 사용하는 경우 메모리 사용이 증가하여 해결하려는 문제가 악화될 수 있습니다.
문제 해결을 위해 sys.dm_exec_query_resource_semaphores를 사용할 수 있지만 이후 버전의 SQL Server를 사용할 응용 프로그램에는 포함시키지 마십시오.
데이터 관리자는 리소스 관리자 기능을 사용하여 서버 리소스를 최대 20개의 리소스 풀에 배치할 수 있습니다. SQL Server 2008에서 각 풀은 독립된 작은 서버 인스턴스와 같이 작동하며 2개의 세마포가 필요합니다. sys.dm_exec_query_resource_semaphores에서 반환된 행 수는 SQL Server 2005에서 반환된 행 수의 최대 20배가 될 수 있습니다.