sys.dm_xtp_gc_stats (Transact-SQL)

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

提供有关内存中 OLTP 垃圾回收进程的当前行为的信息(总体统计信息)。

行在常规事务处理过程中或是由主垃圾回收线程(称为空闲工作线程)进行垃圾回收。 当用户事务提交时,它会从垃圾回收队列(sys.dm_xtp_gc_queue_stats(Transact-SQL)中取消一个工作项的排队。 可以进行垃圾回收但是未由主用户事务访问的任何行都在灰尘角扫描(针对较少访问的索引区域的扫描)过程中由空闲工作线程进行垃圾回收。

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

列名称 类型 描述
rows_examined bigint 自启动服务器以来垃圾回收子系统检查的行数。
rows_no_sweep_needed bigint 已在未进行灰尘角扫描的情况下删除的行数。
rows_first_in_bucket bigint 垃圾回收检查的作为哈希桶中第一行的行数。
rows_first_in_bucket_removed bigint 垃圾回收检查的、已删除的、作为哈希桶中第一行的行数。
rows_marked_for_unlink bigint 垃圾回收检查的在其索引中已标记为已取消链接且 ref count =0 的行数。
parallel_assist_count bigint 用户事务处理的行数。
idle_worker_count bigint 空闲工作线程处理的垃圾行数。
sweep_scans_started bigint 垃圾回收子系统执行的灰尘角扫描数。
sweep_scan_retries bigint 垃圾回收子系统执行的灰尘角扫描数。
sweep_rows_touched bigint 灰尘角处理读取的行。
sweep_rows_expiring bigint 灰尘角处理读取的即将到期的行。
sweep_rows_expired bigint 灰尘角处理读取的过期行。
sweep_rows_expired_removed bigint 灰尘角处理删除的过期行。

权限

要求对实例具有 VIEW SERVER STATE 权限。

SQL Server 2022 及更高版本的权限

要求对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

使用方案

下面是示例输出:

rows_examined        rows_no_sweep_needed rows_first_in_bucket rows_first_in_bucket_removed  
280085               209512               69905  
rows_first_in_bucket_removed rows_marked_for_unlink parallel_assist_count idle_worker_count  
69905                        0                      8953  
  
idle_worker_count    sweep_scans_started  sweep_scan_retries   sweep_rows_touched  
10306473             670                  0                    1343  
  
sweep_rows_expiring  sweep_rows_expired   sweep_rows_expired_removed  
               0                 673673  

另请参阅

内存优化表动态管理视图 (Transact-SQL)