sys.dm_exec_query_resource_semaphores (Transact-SQL)

Применимо к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)База данных SQL в Microsoft Fabric

Возвращает сведения о текущем состоянии семафора ресурса запроса в SQL Server. sys.dm_exec_query_resource_semaphores предоставляет общее состояние памяти выполнения запросов и позволяет определить, может ли система получить доступ к достаточному объему памяти. Это представление дополняет сведения о памяти, полученные из sys.dm_os_memory_clerks , чтобы обеспечить полное представление о состоянии памяти сервера. sys.dm_exec_query_resource_semaphores возвращает одну строку для регулярного семафора ресурса и другую строку для семафора ресурса малого запроса. Существует два требования для семафора небольшого запроса:

  • Запрошенное предоставление памяти должно быть меньше 5 МБ

  • Стоимость запроса должна быть меньше 3 единиц затрат

Note

Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_exec_query_resource_semaphores. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Название столбца Тип данных Описание
resource_semaphore_id smallint Неуникальный идентификатор семафора ресурса. 0 для обычного семафора ресурса и 1 для семафора ресурса малого запроса.
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 Идентификатор пула ресурсов, к которому принадлежит данный семафор ресурса.
pdw_node_id int применимо к: Azure Synapse Analytics, система платформы аналитики (PDW)

Идентификатор узла, на который находится это распределение.

Permissions

Для SQL Server и Управляемого экземпляра SQL требуется разрешение VIEW SERVER STATE.

В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.

Разрешения для SQL Server 2022 и более поздних версий

Требуется VIEW разрешение на состояние производительности сервера на сервере.

Замечания

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

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

Регулятор ресурсов позволяет администратору базы данных распределять ресурсы сервера между пулами ресурсов, используя до 64 пулов. В SQL Server 2012 (11.x) и более поздних версиях каждый пул ведет себя как небольшой независимый экземпляр сервера и требует 2 семафоров.