sys.sp_persistent_version_cleanup (Transact-SQL)
Berlaku untuk:
SQL Server 2019 (15.x)
Azure SQL Database
Azure SQL Managed Instance
Memulai proses pembersihan penyimpanan versi persisten (PVS) secara manual, elemen kunci pemulihan database yang dipercepat (ADR). Pembersih ini mengembalikan data yang tidak diterapkan dalam PVS dari transaksi yang dibatalkan.
Biasanya tidak perlu memulai proses pembersihan PVS secara manual menggunakan sys.sp_persistent_version_cleanup. Namun dalam beberapa skenario, dalam periode istirahat/pemulihan yang diketahui setelah aktivitas OLTP yang sibuk, Anda mungkin ingin memulai proses pembersihan PVS secara manual.
Untuk informasi selengkapnya tentang ADR di Azure SQL, lihat Pemulihan Database Yang Dipercepat di Azure SQL.
Sintaks
EXEC sys.sp_persistent_version_cleanup [database_name] [, scan_all_pages] [, clean_option];
Argumen
[database_name]
Opsional. Nama database yang akan dibersihkan. Jika tidak disediakan, gunakan konteks database saat ini.
[scan_all_pages]
Opsional. Defaultnya adalah 0. Ketika 1, memaksa pembersihan semua halaman database bahkan jika tidak diberi versi.
[clean_option]
Opsional. Opsi yang mungkin menentukan apakah akan mengklaim kembali halaman PVS di luar baris atau tidak. Referensi ini tidak umum diperlukan dan nilai 0 default disarankan.
| Nilai | Deskripsi |
|---|---|
| 0 | Default, tidak ada opsi yang ditentukan |
| 1 | penyimpanan versi di luar baris tanpa memeriksa konten halaman PVS individual |
| 2 | penyimpanan versi off-row dengan setiap halaman PVS dikunjungi |
| 3 | hanya penyimpanan versi dalam baris |
| 4 | penggunaan internal saja |
Mengembalikan Nilai Kode
0 (berhasil) atau 1 (kegagalan)
Tataan Hasil
Tidak ada
Izin
Memerlukan izin UBAH DATABASE untuk dijalankan.
Keterangan
Prosedur sys.sp_persistent_version_cleanup tersimpan sinkron, yang berarti tidak akan selesai sampai semua informasi versi dibersihkan dari PVS saat ini.
Pada SQL Server 2019, proses pembersihan PVS hanya dijalankan untuk satu database pada satu waktu. Dalam Azure SQL Database dan Azure SQL Managed Instance, dan dimulai dengan Pratinjau SQL Server 2022 (16.x), proses pembersihan PVS dapat dijalankan secara paralel terhadap beberapa database dalam instans yang sama.
Jika proses pembersihan PVS sudah berjalan terhadap database yang diinginkan, prosedur tersimpan ini akan diblokir dan menunggu penyelesaian sebelum memulai proses pembersihan PVS lain. Transaksi aktif dan berjalan lama dalam database apa pun di mana ADR diaktifkan juga dapat memblokir pembersihan PVS. Anda dapat memantau tugas pembersih versi dengan mencari prosesnya dengan kueri sampel berikut:
SELECT * FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';
Batasan
Pencerminan Database tidak dapat diatur untuk database tempat ADR diaktifkan atau masih ada versi di penyimpanan versi yang bertahan (PVS). Jika ADR dinonaktifkan, jalankan sys.sp_persistent_version_cleanup untuk membersihkan versi sebelumnya yang masih berada di PVS.
Contoh
Untuk mengaktifkan proses pembersihan PVS secara manual antara beban kerja atau selama jendela pemeliharaan, gunakan contoh skrip berikut:
EXEC sys.sp_persistent_version_cleanup [database_name];
Contohnya:
EXEC sys.sp_persistent_version_cleanup [WideWorldImporters];
Atau, untuk mengasumsikan konteks database saat ini:
USE [WideWorldImporters];
GO
EXEC sys.sp_persistent_version_cleanup;
