Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (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 единиц затрат
Примечание.
Чтобы вызвать это из 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)