分享方式:


sys.dm_xtp_gc_stats (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體

提供記憶體內部 OLTP 垃圾收集程式目前行為的相關信息(整體統計數據)。

數據列是垃圾收集做為一般事務處理的一部分,或由稱為閑置背景工作的主要垃圾收集線程所收集。 當使用者交易認可時,它會從垃圾收集佇列中清除一個工作專案(sys.dm_xtp_gc_queue_stats (Transact-SQL))。 任何可能進行垃圾收集但未由主要使用者交易存取的數據列,都是閑置背景工作所垃圾收集,作為塵土飛揚的角落掃描的一部分(對較不存取索引的區域進行掃描)。

如需詳細資訊,請參閱 In-Memory 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)