sys.dm_db_xtp_gc_cycle_stats (Transact-SQL)
Выдает текущее состояние зафиксированных транзакций, которые удалили одну или несколько строк. Основной бездействующий поток сборки мусора запускается каждую минуту или при достижении определенного числа запущенных фиксированных транзакций DML с момента последнего цикла сборки мусора. В рамках цикла сборки мусора он перемещает зафиксированные транзакции в одну или несколько очередей, связанных с поколениями. Транзакции, которые сформировали устаревшие версии, группируются в блоки по 16 транзакций в 16 поколениях следующим образом.
Поколение 0. Хранит все транзакции, которые были зафиксированы раньше самой старой активной транзакции. Версии строк, сформированные этими транзакциями, сразу же доступны для сборки мусора.
Поколения 1–14. Хранят транзакции с меткой времени после самой старой активной транзакции. Выполнить сбор мусора для этих версий строк нельзя. Каждое поколение может содержать до 16 транзакций. Всего в этих поколениях может быть 224 (14 * 16) транзакции.
Поколение 15. Остальные транзакции с меткой времени после самой старой активной транзакции помещаются в поколение 15. Как и в поколении 0, количество транзакций в поколении 15 неограниченно.
При недостатке памяти поток сборки мусора целенаправленно обновляет указание самой старой активной транзакции, что вызывает сборку мусора.
Дополнительные сведения см. в разделе In-Memory OLTP (оптимизация в памяти).
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2014 до текущей версии). |
Имя столбца |
Тип |
Описание |
---|---|---|
cycle_id |
bigint |
Уникальный идентификатор цикла сборки мусора. |
ticks_at_cycle_start |
bigint |
Такты на момент начала цикла. |
ticks_at_cycle_end |
bigint |
Такты на момент завершения цикла. |
base_generation |
bigint |
Текущее базовое значение создания в базе данных. Представляет метку времени самой старой активной транзакции, которая используется для определения транзакций, подпадающих под сборку мусора. Идентификатор самой старой активной транзакции обновляется с приращениями в 16. Например, при наличии таких идентификаторов транзакций, как 124, 125, 126… 139, значением будет 124. При добавлении еще одной транзакции, например 140, значением будет 140. |
xacts_copied_to_local |
bigint |
Число транзакций, копируемых из конвейера транзакций в массив создания базы данных. |
xacts_in_gen_0- xacts_in_gen_15 |
bigint |
Количество транзакций в каждом формировании. |
Разрешения
Необходимо разрешение VIEW DATABASE STATE на сервере.
Сценарии использования
Вот пример выходных данных с подмножеством столбцов, в котором отображается 27 поколений:
cycle_id ticks_at_cycle_start ticks_at_cycle_end base_generation xacts_in_gen_0 xacts_in_gen_1
1 123160509 123160509 1 0 0
2 123176822 123176822 1 0 1
3 123236826 123236826 1 0 1
4 123296829 123296829 1 0 1
5 123356832 123356941 129 0 0
6 123357473 123357473 129 0 0
7 123417486 123417486 129 0 0
8 123477489 123477489 129 0 0
9 123537492 123537492 129 0 0
10 123597500 123597500 129 0 0
11 123657504 123657504 129 0 0
12 123717507 123717507 129 0 0
13 123777510 123777510 129 0 0
14 123837513 123837513 129 0 0
15 123897516 123897516 129 0 0
16 123957516 123957516 129 0 0
17 124017516 124017516 129 0 0
18 124077517 124077517 129 0 0
19 124137517 124137517 129 0 0
20 124197518 124197518 129 0 0
21 124257518 124257518 129 0 0
22 124317523 124317523 129 0 0
23 124377526 124377526 129 0 0
24 124437529 124437529 129 0 0
25 124497533 124497533 129 0 0
26 124557536 124557536 129 0 0
27 124617539 124617539 129 0 0
См. также
Основные понятия
Оптимизированные для памяти динамические административные представления таблиц (Transact-SQL)