다음을 통해 공유


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배가 될 수 있습니다.