適用於:SQL Server
Azure SQL 受控執行個體
移除資料頁面上的殘留資訊。
sp_clean_db_free_space 清理資料庫中所有資料檔案中的所有頁面。
語法
sp_clean_db_free_space
[ @dbname = ] N'dbname'
[ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]
引數
[ @dbname = ] N'dbname'
要清除的資料庫名稱。 @dbname為 sysname,沒有預設值。
[ @cleaning_delay = ] cleaning_delay
指定每頁清理前的延遲間隔,以秒為單位。
@cleaning_delay為 int,預設值為 0。 這種延遲有助於減輕輸入輸出系統的負載,但代價是延長清理過程的時間。
傳回碼值
0 (成功) 或 1 (失敗)。
備註
sp_clean_db_free_space系統儲存程序會將頁面上的所有列(包括被重影記錄的紀錄(如有的話)移動到頁面開頭,然後對頁面上剩餘的資料空間進行零初始化。 在資料檔案或底層儲存的物理安全性受到威脅的環境中,你可以使用此儲存程序確保資料檔案或儲存中沒有殘留的已刪除資料。
執行 sp_clean_db_free_space 所需的時間取決於資料檔案的大小、檔案中使用的頁面數,以及磁碟的輸入輸出能力。 由於跑步 sp_clean_db_free_space 會大幅增加 I/O 活動,我們建議您在正常營運時間之外執行此程序。
執行 sp_clean_db_free_space之前,建議您先建立完整的資料庫備份。
若要執行每個資料庫檔案的這項作業,請使用 sp_clean_db_file_free_space。
權限
需要資料庫角色的成員 db_owner 資格。
範例
以下範例將清除資料庫中 AdventureWorks2025 所有殘留資料。
USE master;
GO
EXECUTE sp_clean_db_free_space @dbname = N'AdventureWorks2022';