Teilen über


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_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;