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)