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


sys.dm_xtp_gc_queue_stats (Transact-SQL)

Выводит сведения о каждой рабочей очереди подсистемы сборки мусора на сервере и различные статистические данные о них. Имеется только одна очередь на каждый логический ЦП.

Основной поток сборки мусора (бездействующий поток) отслеживает обновленные, удаленные и вставленные строки для всех транзакций, выполненных с момента последнего вызова основного потока сборки мусора. Когда поток сборки мусора начинает работать, он определяет, изменилась ли метка времени самой старой активной транзакции. Если самая старая транзакция изменилась, то бездействующий поток ставит в очередь элементы работы (фрагменты данных по 16 строк) для транзакций, наборы записи которых больше не нужны. Например, если вы удаляете 1024 строки, то спустя некоторое время в очереди появятся 64 элемента работы сборки мусора, каждый из которых будет содержать 16 удаленных строк. Пользовательская транзакция после фиксации выбирает все поставленные в очередь элементы в своем планировщике. Если в планировщике нет помещенных в очередь элементов, пользовательская транзакция выполнит поиск во всех очередях в текущем узле NUMA.

Для определения того, высвобождает ли сборка мусора память для удаленных строк, выполните sys.dm_xtp_gc_queue_stats, чтобы видеть, обрабатывается ли поставленная в очередь работа. Если записи из current_queue_depth не обрабатываются или если в current_queue_length не добавляются новые элементы работы, это указывает на то, что сборка мусора не высвобождает память. Например, сборку мусора нельзя выполнить при наличии длительной транзакции.

Дополнительные сведения см. в разделе In-Memory OLTP (оптимизация в памяти).

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2014 до текущей версии).

Имя столбца

Тип

Описание

queue_id

int

Уникальный идентификатор очереди.

total_enqueues

bigint

Общее число рабочих элементов подсистемы сборки мусора, поставленных в эту очередь с момента запуска сервера.

total_dequeues

bigint

Общее число рабочих элементов подсистемы сборки мусора, выведенных из этой очереди с момента запуска сервера.

current_queue_depth

bigint

Текущее количество рабочих элементов подсистемы сборки мусора в этой очереди. Этот элемент может привести к сборке мусора одного или нескольких элементов.

maximum_queue_depth

bigint

Максимальная глубина этой очереди.

last_service_ticks

bigint

Метки времени ЦП на момент последнего обслуживания очереди.

Разрешения

Необходимо разрешение VIEW SERVER STATE.

Пользовательский сценарий

Этот выход показывает, что SQL Server выполняется на 4 ядрах либо что экземпляр SQL Server был сопоставлен с 4 ядрами.

Этот выход показывает, что в очередях нет рабочих элементов, которые необходимо обработать. Для очереди 0 общее число рабочих элементов, выведенных из очереди с момента запуска SQL, составляет 15 625. Максимальная глубина очереди составляла 215 625.

queue_id total_enqueues total_dequeues current_queue_depth  maximum_queue_depth  last_service_ticks
----------------------------------------------------------------------------------------------------
0        15625                15625    0                    15625                1233573168347
1        15625                15625    0                    15625                1234123295566
2        15625                15625    0                    15625                1233569418146
3        15625                15625    0                    15625                1233571605761

См. также

Основные понятия

Оптимизированные для памяти динамические административные представления таблиц (Transact-SQL)