sp_clean_db_file_free_space (Transact-SQL)
適用対象:SQL Server
SQL Server のデータ変更ルーチンにより、データベース ページに残っている残余情報を削除します。 sp_clean_db_file_free_space、データベースの 1 つのファイル内のすべてのページをクリーンアップします。
構文
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'
クリーンアップするデータ ファイル ID です。 file_numberは int であり、NULL にすることはできません。
@cleaning_delay = 'delay_in_seconds'
ページをクリーニングする間隔を指定します。 これにより、I/O システムへの影響を軽減できます。 delay_in_secondsは int で、既定値は 0 です。
リターン コードの値
0 (成功) または 1 (失敗)
解説
行の移動を引き起こすテーブルまたは更新操作から操作を削除すると、行への参照を削除することで、ページの領域をすぐに解放できます。 ただし、特定の状況下では、行がゴースト レコードとして、物理的にデータ ページ上に残ってしまう場合があります。 ゴースト レコードは、バックグラウンド プロセスによって定期的に削除されます。 この残余データは、クエリに応答してデータベース エンジンから返されません。 ただし、データまたはバックアップ ファイルの物理的なセキュリティが危険にさらされている環境では、これらのゴースト レコードをクリーンアップするために使用 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;
参照
データベース エンジン ストアド プロシージャ (Transact-SQL)
ゴースト クリーンアップ プロセス ガイド
sp_clean_db_free_space (Transact-SQL)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示