sys.sp_xtp_force_gc (T-SQL)

Berlaku untuk:SQL Server

Menyebabkan mesin dalam memori merilis memori yang terkait dengan baris data dalam memori yang dihapus yang memenuhi syarat untuk pengumpulan sampah, yang belum dirilis oleh proses.

Dalam kasus di mana volume besar data dalam memori telah dirilis, dan di mana memori tidak segera diperlukan untuk data dalam memori lainnya, prosedur ini dapat membebaskan memori untuk penggunaan lain. Jika Anda mengantisipasi memori yang digunakan segera untuk data dalam memori lainnya, membebaskannya di sini hanya akan menyebabkan overhead ekstra, karena perlu dialokasikan untuk data baru.

Untuk informasi selengkapnya tentang metadata TempDB yang dioptimalkan memori dari kesalahan memori, lihat Metadata tempdb yang dioptimalkan memori (HkTempDB) dari kesalahan memori.

Prosedur sys.sp_xtp_force_gc tersimpan sistem diperkenalkan di SQL Server 2022 (16.x) CU 1 dan SQL Server 2019 (15.x) CU 13. Prosedur tersimpan ini saat ini tidak didukung di Azure SQL Database dan Azure SQL Managed Instance.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

[ @dbname = ] 'database_name'

Database untuk merilis memori yang tidak digunakan untuk tabel yang dioptimalkan memori. @dbname adalah sysname.

  • Ketika parameter @dname tidak ditentukan, hanya struktur memori tingkat sistem dalam instans yang dipertimbangkan.

  • Ketika parameter @dname yang disediakan adalah tempdb, struktur memori yang terkait dengan metadata tempdb yang dioptimalkan memori terpengaruh.

  • Ketika parameter @dname yang disediakan adalah database pengguna, struktur memori terkait tabel memori yang dioptimalkan terpengaruh.

Oleh karena itu, Anda mungkin berharap untuk melihat hasil yang berbeda saat mengeksekusi sys.sp_xtp_force_gc: tanpa parameter, dengan @dbname = N'tempdb', atau dengan @dbname = nama database pengguna.

Mengembalikan nilai kode

0 untuk keberhasilan. Bukan nol untuk kegagalan.

Izin

Memerlukan keanggotaan dalam peran database tetap db_owner .

Keterangan

Pengumpulan sampah yang dioptimalkan memori terjadi secara normal dan otomatis sebagai respons terhadap tekanan memori. Anda dapat memicu pengumpulan sampah secara manual dengan sys.sp_xtp_force_gc. Anda dapat mengamati pengurangan pembersihan memori di sys.dm_xtp_system_memory_consumers. Di SQL Server 2022 (16.x), sys.dm_xtp_system_memory_consumers tampilan manajemen dinamis telah meningkatkan wawasan khusus untuk metadata tempdb yang dioptimalkan memori.

Berbeda dengan sys.sp_xtp_checkpoint_force_garbage_collection, yang menandai file titik pemeriksaan yang digunakan dalam operasi penggabungan dengan nomor urutan log (LSN) setelah itu tidak diperlukan dan dapat dikumpulkan sampah. Selain itu, sys.sp_xtp_checkpoint_force_garbage_collection memindahkan file yang LSN terkaitnya lebih rendah dari titik pemotongan log ke pengumpulan sampah FILESTREAM.

Sebelum SQL Server 2022 (16.x), jalankan prosedur tersimpan ini dua kali.

Contoh

Untuk menjalankan pembersihan sampah pada struktur memori tingkat sistem dan metadata TempDB yang dioptimalkan memori di SQL Server 2022 (16.x):

EXEC sys.sp_xtp_force_gc N'tempdb';
GO

EXEC sys.sp_xtp_force_gc;
GO

Untuk menjalankan pembersihan sampah pada struktur memori tingkat sistem dan metadata TempDB yang dioptimalkan memori sebelum SQL Server 2022 (16.x):

EXEC sys.sp_xtp_force_gc N'tempdb';
GO

EXEC sys.sp_xtp_force_gc N'tempdb';
GO

EXEC sys.sp_xtp_force_gc;
GO

EXEC sys.sp_xtp_force_gc;
GO