sys.dm_db_xtp_gc_cycle_stats (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

输出已删除一行或多行的已提交事务的当前状态。 空闲垃圾回收线程每分钟唤醒一次,或在自上次垃圾回收周期以来提交的 DML 事务数超过内部阈值时唤醒。 作为垃圾回收周期的一部分,提交的事务将移动到与代系关联的一个或多个队列中。 生成过时版本的事务按 16 代事务的单元分组,如下所示:

  • 第 0 代:存储在最早的活动事务之前提交的所有事务。 这些事务生成的行版本立即可用于垃圾回收。

  • 第 1-14 代:存储时间戳比最早活动事务更大的事务。 行版本无法进行垃圾回收。 每代可以容纳最多 16 个事务。 这些代中总计可以存在 224 (14 * 16) 个事务。

  • 第 15 代:时间戳比最早活动事务更大的其余事务进入第 15 代。 类似于第 0 代,第 15 代中没有事务数限制。

当存在内存压力时,垃圾回收线程会积极更新最早活动事务提示(这会强制进行垃圾回收)。

有关详细信息,请参阅 内存中 OLTP(内存中优化)

列名称 类型 描述
cycle_id bigint 垃圾回收周期的唯一标识符。
ticks_at_cycle_start bigint 周期开始时的时钟。
ticks_at_cycle_end bigint 周期结束时的时钟。
base_generation bigint 数据库中的当前基础代值。 这表示用于标识事务进行垃圾回收的最早活动事务时间戳。 以 16 为增量更新最早的活动事务 ID。 例如,如果事务 ID 为 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