sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)

Applies to: SQL Server

Marks source files used in the merge operation with the log sequence number (LSN) after which they aren't needed and can be garbage collected. Also, sys.sp_xtp_checkpoint_force_garbage_collection moves the files whose associated LSN is lower than the log truncation point to FILESTREAM garbage collection.

Contrast with sys.sp_xtp_force_gc, which causes the in-memory engine to release memory related to deleted rows of in-memory data that are eligible for garbage collection, which haven't yet been released by the process.

Transact-SQL syntax conventions

Syntax

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

Arguments

[ @dbname = ] 'database_name'

The database to run garbage collection on. The default is the current database. @dbname is sysname.

Return code values

0 for success. Nonzero for failure.

Result set

A returned row contains the following information:

Column Description
num_collected_items Indicates the number of files that have been moved to FILESTREAM garbage collection. The log sequence number (LSN) of these files is less than the LSN of log truncation point.
num_marked_for_collection_items Indicates the number of data/delta files whose LSN has been updated with the log blockID of the end-of-log LSN.
last_collected_xact_seqno Returns the last corresponding LSN up to which the files have been moved to FILESTREAM garbage collection.

Remarks

You can manually trigger garbage collection with another system stored procedure, sys.sp_xtp_force_gc. You can observe the reduction in memory cleanup in sys.dm_xtp_system_memory_consumers.

In SQL Server 2022 (16.x), the sys.dm_xtp_system_memory_consumers dynamic management view has improved insights specific to memory-optimized tempdb metadata.

Permissions

Requires membership in the db_owner fixed database role.

Examples

To mark unneeded source files for garbage collection in the tempdb database, use the following sample script:

EXEC sys.sp_xtp_checkpoint_force_garbage_collection N'tempdb';