sp_clean_db_file_free_space (Transact-SQL)

Gilt für:SQL Server

Entfernt Restinformationen, die auf Datenbankseiten verbleiben, aufgrund von Datenänderungsroutinen in SQL Server. sp_clean_db_file_free_space reinigt alle Seiten in nur einer Datei einer Datenbank.

Transact-SQL-Syntaxkonventionen

Syntax

sp_clean_db_file_free_space   
  [ @dbname = ] 'database_name'   
  , [ @fileid = ] 'file_number'   
  [ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]  

Argumente

@dbname = 'database_name'
Der Name der zu bereinigenden Datenbank. dbname ist sysname und darf nicht NULL sein.

@fileid = 'file_number'
Die ID der zu bereinigenden Datendatei. file_number ist int und darf nicht NULL sein.

@cleaning_delay = 'delay_in_seconds'
Gibt das Intervall zwischen dem Bereinigen von Seiten an. Hierdurch werden die Auswirkungen auf das E/A-System verringert. delay_in_seconds ist int mit dem Standardwert 0.

Rückgabecodewerte

„0“ (erfolgreich) oder „1“ (fehlerhaft)

Hinweise

Durch Löschvorgänge für eine Tabelle oder Updatevorgänge, die zum Verschieben einer Zeile führen, kann sofort Speicherplatz für eine Seite freigegeben werden, indem Verweise auf die Zeile entfernt werden. Unter bestimmten Umständen kann die Zeile jedoch als inaktiver Datensatz (ghost record) weiter physisch auf der Datenseite vorhanden sein. Inaktive Datensätze werden regelmäßig durch einen im Hintergrund ausgeführten Prozess entfernt. Diese Restdaten werden nicht vom Datenbankmodul als Reaktion auf Abfragen zurückgegeben. In Umgebungen, in denen die physische Sicherheit der Daten- oder Sicherungsdateien gefährdet ist, können Sie diese Geisterdatensätze jedoch bereinigen sp_clean_db_file_free_space . Verwenden Sie sp_clean_db_free_space (Transact-SQL), um diesen Vorgang für alle Datenbankdateien gleichzeitig auszuführen.

Die zum Ausführen von sp_clean_db_file_free_space erforderliche Dauer hängt von der Größe der Datei, dem freien Speicherplatz und der Kapazität des Datenträgers ab. Da sich die Ausführung sp_clean_db_file_free_space erheblich auf die E/A-Aktivität auswirken kann, empfehlen wir, dieses Verfahren außerhalb der üblichen Betriebszeiten auszuführen.

Vor dem Ausführen sp_clean_db_file_free_spaceempfehlen wir, eine vollständige Datenbanksicherung zu erstellen.

Die zugehörige sp_clean_db_free_space gespeicherte Prozedur bereinigt alle Dateien in der Datenbank.

Berechtigungen

Erfordert die Mitgliedschaft in der db_owner Datenbankrolle.

Beispiele

Im folgenden Beispiel werden alle Restinformationen aus der primären Datendatei der AdventureWorks2022-Datenbank gelöscht.

USE master;  
GO  
EXEC sp_clean_db_file_free_space @dbname = N'AdventureWorks2022', @fileid = 1;  

Weitere Informationen

Gespeicherte Prozeduren des Datenbankmoduls (Transact-SQL)
Ghost Cleanup Process Guide
sp_clean_db_free_space (Transact-SQL)