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


sys.dm_db_xtp_gc_cycle_stats (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Выводит текущее состояние зафиксированных транзакций, которые удалили одну или несколько строк. Основной бездействующий поток сборки мусора запускается каждую минуту или при достижении определенного числа запущенных фиксированных транзакций DML с момента последнего цикла сборки мусора. В рамках цикла сборки мусора зафиксированные транзакции перемещаются в одну или несколько очередей, связанных с поколениями. Транзакции, создающие устаревшие версии, группируются в единицу из 16 транзакций в 16 поколений следующим образом:

  • Поколение-0. Это сохраняет все транзакции, зафиксированные ранее, чем самая старая активная транзакция. Версии строк, сформированные этими транзакциями, сразу же доступны для сборки мусора.

  • Поколения 1–14: сохраняет транзакции с меткой времени больше, чем самая старая активная транзакция. Выполнить сбор мусора для этих версий строк нельзя. Каждое поколение может содержать до 16 транзакций. Всего в этих поколениях может быть 224 (14 * 16) транзакции.

  • Поколение 15. Остальные транзакции с меткой времени больше, чем самая старая активная транзакция, переходят к поколению 15. Как и в поколении 0, количество транзакций в поколении 15 неограниченно.

При недостатке памяти поток сборки мусора целенаправленно обновляет указание самой старой активной транзакции, что вызывает сборку мусора.

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

Имя столбца Тип Описание
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 на базу данных.

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW DATABASE PERFORMANCE 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