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


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)