sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает текущее состояние семафоров ресурсов, используемых для регулирования параллельной оптимизации запросов.
Column | Type | Описание |
---|---|---|
pool_id | int | Идентификатор пула ресурсов в разделе "Регулятор ресурсов" |
name | sysname | Имя шлюза компиляции (небольшой шлюз, средний шлюз, большой шлюз) |
max_count | int | Максимальное число одновременных компиляций |
active_count | int | Текущее активное число компиляций в этом шлюзе |
waiter_count | int | Количество официантов в этих воротах |
threshold_factor | bigint | Пороговый коэффициент, определяющий максимальную часть памяти, используемую оптимизацией запросов. Для небольшого шлюза threshold_factor указывает максимальное использование памяти оптимизатора в байтах для одного запроса, прежде чем требуется получить доступ в небольшом шлюзе. Для среднего и большого шлюза threshold_factor отображает часть общего объема памяти сервера, доступного для этого шлюза. Он используется в качестве разделителя при вычислении порогового значения использования памяти для шлюза. |
threshold | bigint | Следующая пороговая память в байтах. Запрос требуется для получения доступа к этому шлюзу, если его потребление памяти достигает этого порогового значения. Значение "-1", если запрос не требуется для получения доступа к этому шлюзу. |
is_active | bit | Требуется ли запрос для передачи текущего шлюза или нет. |
Разрешения
ДЛЯ SQL Server требуется разрешение VIEW SERVER STATE на сервере.
База данных SQL Azure требуется разрешение VIEW DATABASE STATE в базе данных.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Замечания
SQL Server использует многоуровневый подход шлюза для регулирования числа разрешенных одновременных компиляций. Используются три шлюза, включая небольшие, средние и большие. Шлюзы помогают предотвратить исчерпание общих ресурсов памяти более крупными потребителями, требующими памяти компиляции.
Ожидание шлюза приводит к задержке компиляции. Помимо задержек компиляции регулирование запросов будет иметь связанное RESOURCE_SEMAPHORE_QUERY_COMPILE накопление типа ожидания. Тип ожидания RESOURCE_SEMAPHORE_QUERY_COMPILE может указывать на то, что запросы используют большое количество памяти для компиляции и что память была исчерпана, или, кроме того, достаточно доступной памяти, однако доступные единицы в определенном шлюзе были исчерпаны. Выходные данные sys.dm_exec_query_optimizer_memory_gateways можно использовать для устранения неполадок в сценариях, в которых недостаточно памяти для компиляции плана выполнения запроса.
Примеры
А. Просмотр статистики по семафорам ресурсов
Что такое текущая статистика шлюза памяти оптимизатора для этого экземпляра SQL Server?
SELECT [pool_id], [name], [max_count], [active_count],
[waiter_count], [threshold_factor], [threshold],
[is_active]
FROM sys.dm_exec_query_optimizer_memory_gateways;
См. также
Динамические административные представления и функции (Transact-SQL)
Связанные с выполнением динамические административные представления и функции (Transact-SQL)
Как использовать команду DBCC MEMORYSTATUS для отслеживания использования памяти в SQL Server 2005Больших запросов ожидает ожидания RESOURCE_SEMAPHORE_QUERY_COMPILE в SQL Server 2014