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


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;