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
bereinigt alle Seiten in nur einer Datei einer Datenbank.
Transact-SQL-Syntaxkonventionen
Syntax
sp_clean_db_file_free_space
[ @dbname = ] N'dbname'
, [ @fileid = ] fileid
[ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]
Argumente
[ @dbname = ] N'dbname'
Der Name der zu bereinigenden Datenbank. @dbname ist "sysname" ohne Standard.
[ @fileid = ] fileid
Die zu bereinigende Datendatei-ID. @fileid ist "int" ohne Standard.
[ @cleaning_delay = ] cleaning_delay
Gibt das Intervall zwischen dem Bereinigen von Seiten an. @cleaning_delay ist int mit einem Standardwert von 0
. Diese Verzögerung trägt dazu bei, den Effekt auf das E/A-System zu verringern.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
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. Ein Hintergrundprozess entfernt regelmäßig Geistereinträge. Diese Restdaten werden von der Datenbank-Engine nicht 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
. Um diesen Vorgang für alle Datenbankdateien gleichzeitig auszuführen, verwenden Sie sp_clean_db_free_space.
Die für die Ausführung sp_clean_db_file_free_space
erforderliche Zeit hängt von der Größe der Datei, dem verfügbaren 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_space
empfehlen 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;