sp_clean_db_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_free_space
bereinigt alle Seiten in allen Dateien der Datenbank.
Transact-SQL-Syntaxkonventionen
Syntax
sp_clean_db_free_space
[ @dbname = ] N'dbname'
[ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]
Argumente
[ @dbname = ] N'dbname'
Der Name der zu bereinigenden Datenbank. @dbname ist "sysname" 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
Löschvorgänge aus einer Tabelle oder Aktualisierungsvorgängen, die dazu führen, dass eine Zeile verschoben wird, kann sofort Speicherplatz auf einer Seite freigeben, 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_free_space
. Verwenden Sie sp_clean_db_file_free_space, um diesen Vorgang pro Datenbankdatei auszuführen.
Die für die Ausführung sp_clean_db_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_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_free_space
empfehlen wir, eine vollständige Datenbanksicherung zu erstellen.
Die zugehörige sp_clean_db_file_free_space gespeicherten Prozedur kann eine einzelne Datei bereinigen.
Berechtigungen
Erfordert die Mitgliedschaft in der db_owner
Datenbankrolle.
Beispiele
Im folgenden Beispiel werden alle Restinformationen aus der AdventureWorks2022
-Datenbank gelöscht.
USE master;
GO
EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2022';