sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)

適用於:SQL Server

標記合併作業中使用的來源檔案與記錄序號 (LSN), 之後不需要它們,而且可以進行垃圾收集。 此外, sys.sp_xtp_checkpoint_force_garbage_collection 將相關聯的 LSN 低於記錄截斷點的檔案移至 FILESTREAM 垃圾收集。

與sys.sp_xtp_force_gc形成對比,這會導致記憶體內部引擎釋放與已刪除記憶體內數據列相關的記憶體,這些數據列有資格進行垃圾收集,而該數據尚未由進程釋放。

Transact-SQL 語法慣例

語法

sys.sp_xtp_checkpoint_force_garbage_collection
    [ [ @dbname = ] 'database_name' ]
[ ; ]

引數

[ @dbname = ] 'database_name'

要執行垃圾收集的資料庫。 預設為目前資料庫。 @dbname為 sysname

傳回碼值

0 表示成功。 失敗的非零。

結果集

傳回的資料列包含下列資訊:

資料行 描述
num_collected_items 指出已移至 FILESTREAM 垃圾收集的檔案數目。 這些檔案的記錄序號 (LSN) 小於記錄截斷點的 LSN。
num_marked_for_collection_items 指出 LSN 已使用記錄結尾 LSN 的記錄區塊識別碼更新的數據/差異檔案數目。
last_collected_xact_seqno 傳回最後一個對應的 LSN,檔案已移至 FILESTREAM 垃圾收集。

備註

您可以使用另一個系統預存程式手動觸發垃圾收集。 sys.sp_xtp_force_gc 您可以在 sys.dm_xtp_system_memory_consumers 中觀察記憶體清除的減少。

在 SQL Server 2022 (16.x)中,sys.dm_xtp_system_memory_consumers動態管理檢視已改善記憶體優化 tempdb 元數據特有的深入解析。

權限

需要 db_owner 固定資料庫角色中的成員資格。

範例

若要標記資料庫中垃圾收集 tempdb 所需的來源檔案,請使用下列範例腳本:

EXEC sys.sp_xtp_checkpoint_force_garbage_collection N'tempdb';