適用対象:SQL Server
Azure SQL Managed Instance
データページの残留情報を削除します。
sp_clean_db_file_free_space は、データベースの 1 つのファイル内のすべてのページをクリーンアップします。
構文
sp_clean_db_file_free_space
[ @dbname = ] N'dbname'
, [ @fileid = ] fileid
[ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]
引数
[ @dbname = ] N'dbname'
消去するデータベースの名前。 @dbname は sysname で、既定値はありません。
[ @fileid = ] fileid
クリーンアップするデータ ファイル ID。 @fileid は int で、既定値はありません。
[ @cleaning_delay = ] cleaning_delay
各ページのクリーンアップまでの間隔を秒単位で指定します。
@cleaning_delay は int で、既定値は 0 です。 この遅延により、クリーンアッププロセスの時間を延ばす代わりに、I/Oシステムの負荷が軽減されます。
リターン コードの値
0 (成功) または 1 (失敗)。
解説
sp_clean_db_file_free_spaceシステムのストアドプロシージャは、ゴーストされたレコードを含むページ上のすべての行をページの先頭に移動させ、その後ページ上の残りのデータ空間をゼロ初期化します。 データファイルや基盤となるストレージの物理的なセキュリティが危険にさらされる環境では、このストアドプロシージャを使って、データファイルやストレージに残る削除データが一切残らないことを確認できます。
sp_clean_db_file_free_spaceの実行に必要な時間は、データファイルのサイズ、ファイル内で使用されるページ数、ディスクのI/O能力によって異なります。
sp_clean_db_file_free_spaceの実行はI/O活動を大幅に増加させるため、通常の営業時間外で行うことを推奨します。
sp_clean_db_file_free_spaceを実行する前に、データベースの完全バックアップを作成することをお勧めします。
この操作をデータベース内のすべてのデータファイルに対して行うには 、sp_clean_db_free_spaceを使用します。
アクセス許可
db_owner データベース ロールのメンバーシップが必要です。
例
次の例では、 AdventureWorks2025 データベースのプライマリ データ ファイルからすべての残余情報を消去します。
USE master;
GO
EXECUTE sp_clean_db_file_free_space
@dbname = N'AdventureWorks2022',
@fileid = 1;