sys.dm_exec_query_resource_semaphores (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure 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 возвращает одну строку для регулярного семафора ресурса и другую строку для семафора ресурса малого запроса. Существует два требования для семафора небольшого запроса:
Запрошенное предоставление памяти должно быть меньше 5 МБ
Стоимость запроса должна быть меньше 3 единиц затрат
Примечание.
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_exec_query_resource_semaphores
. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Имя столбца | Тип данных | Description |
---|---|---|
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, Analytics Platform System (PDW) Идентификатор узла, на который находится данное распределение. |
Разрешения
На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE
.
Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader##
роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE
в базе данных или членство в роли сервера ##MS_ServerStateReader##
.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Замечания
Запросы, использующие динамические административные представления, которые содержат предложение ORDER BY или статистические функции, могут увеличить потребление памяти и таким образом устранить неполадки.
Используйте sys.dm_exec_query_resource_semaphores для устранения неполадок, но не включают его в приложения, которые будут использовать будущие версии SQL Server.
Регулятор ресурсов позволяет администратору базы данных распределять ресурсы сервера между пулами ресурсов, используя до 64 пулов. В SQL Server 2012 (11.x) и более поздних версиях каждый пул ведет себя как небольшой независимый экземпляр сервера и требует 2 семафоров.
См. также
Связанные с выполнением динамические административные представления и функции (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)