Поделиться через


sys.dm_exec_query_resource_semaphores

Возвращает сведения о текущем состоянии семафора запроса-ресурса. Представление sys.dm_exec_query_resource_semaphores выдает общее состояние памяти выполнения запроса и позволяет определить, может ли система получить доступ к необходимому объему памяти. Данное представление дополняет сведения о памяти, полученные от представления sys.dm_os_memory_clerks для получения полной картины состояния памяти сервера. Представление sys.dm_exec_query_resource_semaphores возвращает одну строку обычному семафору ресурса, а другую — семафору ресурса малого запроса.

Имя столбца

Тип данных

Описание

resource_semaphore_id

smallint

Неуникальный идентификатор семафора ресурса. 0 для обычного семафора ресурса и 1 для семафора ресурса малого запроса.

ПримечаниеПримечание
Данный идентификатор уникален в более ранних версиях SQL Server, чем SQL Server 2008. Данное изменение может повлиять на отладку выполнения запроса. Дополнительные сведения см. в подразделе «Примечания» далее в этом разделе.

target_memory_kb

bigint

Допускает использование назначения в килобайтах.

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

Идентификатор пула ресурсов, к которому принадлежит данный семафор ресурса.

Разрешения

Требуется разрешение VIEW SERVER STATE на сервере.

Замечания

Запросы, использующие динамические административные представления, которые содержат предложение ORDER BY или статистические функции, могут увеличить потребление памяти и таким образом устранить неполадки.

Используйте представление sys.dm_exec_query_resource_semaphores для устранения неполадок, но не включайте его в приложение, которое будет использоваться в будущих версиях SQL Server.

Регулятор ресурсов позволяет администратору базы данных распределять ресурсы сервера между пулами ресурсов, используя максимально до 20 пулов. В SQL Server 2008 каждый пул ведет себя как небольшой независимый экземпляр сервера и требует двух семафоров. Число строк, возвращенных из представления sys.dm_exec_query_resource_semaphores, может быть в 20 раз выше числа строк, возвращенных SQL Server 2005.