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 Datenbank-Engine 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_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;
Weitere Informationen
Datenbank-Engine Gespeicherte Prozeduren (Transact-SQL)
Ghost Cleanup Process Guide
sp_clean_db_free_space (Transact-SQL)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für