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
Связанный контент
- Введение в таблицы, оптимизированные для памяти
- Динамические административные представления таблиц, оптимизированные для памяти
- Обзор и сценарии использования OLTP в памяти
- Оптимизация производительности с помощью технологий в памяти в База данных SQL Azure
- Оптимизация производительности с помощью технологий в памяти в Управляемый экземпляр SQL Azure