共用方式為


sp_clean_db_free_space (Transact-SQL)

適用於:SQL Server

拿掉資料庫頁面上剩餘的信息,因為 SQL Server 中的數據修改例程。 sp_clean_db_free_space清除資料庫中所有檔案中的所有頁面。

Transact-SQL 語法慣例

語法

sp_clean_db_free_space   
  [ @dbname = ] 'database_name'   
  [ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]  

引數

@dbname = 'database_name'
這是要清除的資料庫名稱。 dbnamesysname ,不能是 NULL。

@cleaning_delay = 'delay_in_seconds'
指定在清除頁面之間延遲的間隔。 這有助於降低 I/O 系統的影響。 delay_in_seconds為 int,預設值為 0。

傳回碼值

0 (成功) 或 1 (失敗)

備註

從數據表中刪除作業或更新作業,導致數據列移動,可以藉由移除數據列的參考,立即釋放頁面上的空間。 不過,在某些情況下,數據列可以實際保留在數據頁面上做為準刪除記錄。 背景程式會定期移除准刪除記錄。 回應查詢時,資料庫引擎 不會傳回此剩餘數據。 不過,在數據或備份文件的實際安全性處於風險的環境中,您可以使用 sp_clean_db_free_space 來清除這些准刪除記錄。 若要執行每個資料庫檔案的這項作業,請使用 sp_clean_db_file_free_space (Transact-SQL)

執行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 資格。

範例

下列範例會清除資料庫中 AdventureWorks2022 的所有剩餘資訊。

USE master;  
GO  
EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2022';  

另請參閱

資料庫引擎 預存程式 (Transact-SQL)
准刪除清除程式指南
sp_clean_db_file_free_space (Transact-SQL)