Teilen über


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_spaceempfehlen 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';