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


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