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)
- Использование команды DBCC MEMORYSTATUS для мониторинга использования памяти в SQL Server 2005
- компиляция больших запросов ожидает RESOURCE_SEMAPHORE_QUERY_COMPILE в SQL Server 2014