sp_clean_db_file_free_space (Transact-SQL)
適用於:SQL Server
移除資料庫頁面上剩餘的資訊,因為 SQL Server 中的資料修改常式。 sp_clean_db_file_free_space只會清除資料庫一個檔案中的所有頁面。
語法
sp_clean_db_file_free_space
[ @dbname = ] 'database_name'
, [ @fileid = ] 'file_number'
[ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]
引數
@dbname = ' database_name '
這是要清除的資料庫名稱。 dbname 是 sysname ,不能是 Null。
@fileid = ' file_number '
這是要清除的資料檔案識別碼。 file_number為 int ,且不可為 Null。
@cleaning_delay = ' delay_in_seconds '
指定在清除頁面之間延遲的間隔。 這有助於降低 I/O 系統的影響。 delay_in_seconds 為 int ,預設值為 0。
傳回碼值
0 (成功) 或 1 (失敗)
備註
從資料表或更新作業中刪除導致資料列移動的作業,可以藉由移除資料列的參考,立即釋放頁面上的空間。 不過,在某些情況下,資料列可以實際保留在資料頁面上做為准刪除記錄。 背景程式會定期移除准刪除記錄。 Database Engine 不會傳回此剩餘資料,以回應查詢。 不過,在資料或備份檔案的實際安全性處於風險的環境中,您可以使用 sp_clean_db_file_free_space
來清除這些准刪除記錄。 若要針對所有資料庫檔案一次執行這項作業,請使用 sp_clean_db_free_space (Transact-SQL) 。
執行sp_clean_db_file_free_space所需的時間長度取決於檔案的大小、可用的可用空間,以及磁片的容量。 因為執行 sp_clean_db_file_free_space
可能會大幅影響 I/O 活動,建議您在一般作業時間以外執行此程式。
執行 sp_clean_db_file_free_space
之前,建議您先建立完整的資料庫備份。
相關的 sp_clean_db_free_space 預存程式會清除資料庫中的所有檔案。
權限
需要資料庫角色的成員 db_owner
資格。
範例
下列範例會從資料庫的主要資料檔案 AdventureWorks2022
清除所有剩餘資訊。
USE master;
GO
EXEC sp_clean_db_file_free_space @dbname = N'AdventureWorks2022', @fileid = 1;
另請參閱
Database Engine 預存程式 (Transact-SQL)
准刪除清除程式指南
sp_clean_db_free_space (Transact-SQL)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應