Bagikan melalui


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.

Konvensi sintaks transact-SQL

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';