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