sp_clean_db_free_space (T-SQL)
Berlaku untuk: SQL Server
Menghapus informasi sisa yang tersisa di halaman database karena rutinitas modifikasi data di SQL Server. sp_clean_db_free_space
membersihkan semua halaman di semua file database.
Sintaks
sp_clean_db_free_space
[ @dbname = ] N'dbname'
[ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]
Argumen
[ @dbname = ] N'dbname'
Nama database yang akan dibersihkan. @dbname adalah sysname, tanpa default.
[ @cleaning_delay = ] cleaning_delay
Menentukan interval untuk menunda antara pembersihan halaman. @cleaning_delay int, dengan default 0
. Penundaan ini membantu mengurangi efek pada sistem I/O.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
Menghapus operasi dari tabel atau memperbarui operasi yang menyebabkan pemindahan baris dapat segera mengosongkan ruang pada halaman dengan menghapus referensi ke baris. Namun, dalam keadaan tertentu, baris dapat secara fisik tetap berada di halaman data sebagai catatan hantu. Proses latar belakang secara berkala menghapus catatan hantu. Data residu ini tidak dikembalikan oleh Mesin Database sebagai respons terhadap kueri. Namun, di lingkungan di mana keamanan fisik data atau file cadangan berisiko, Anda dapat menggunakan sp_clean_db_free_space
untuk membersihkan catatan hantu ini. Untuk melakukan operasi ini per file database, gunakan sp_clean_db_file_free_space.
Lamanya waktu yang diperlukan untuk berjalan sp_clean_db_free_space
tergantung pada ukuran file, ruang kosong yang tersedia, dan kapasitas disk. Karena menjalankan sp_clean_db_free_space
dapat secara signifikan memengaruhi aktivitas I/O, kami sarankan Anda menjalankan prosedur ini di luar jam operasi biasa.
Sebelum Anda menjalankan sp_clean_db_free_space
, kami sarankan Anda membuat cadangan database lengkap.
Prosedur tersimpan sp_clean_db_file_free_space terkait dapat membersihkan satu file.
Izin
Memerlukan keanggotaan dalam db_owner
peran database.
Contoh
Contoh berikut membersihkan semua informasi residu dari AdventureWorks2022
database.
USE master;
GO
EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2022';