Freigeben über


sp_clean_db_file_free_space (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Entfernt Restinformationen auf den Datenseiten. 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 ein Intervall an, das bis zur Bereinigung jeder Seite in Sekunden verzögert werden soll. @cleaning_delay ist int mit einem Standardwert von 0. Diese Verzögerung hilft, die Belastung des I/O-Systems zu reduzieren, wobei die Reinigungsdauer verlängert wird.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

Das sp_clean_db_file_free_space systemgespeicherte Verfahren verschiebt alle Zeilen einer Seite, einschließlich der vorhandenen geghosteten Datensätze, an den Anfang der Seite und initialisiert dann den restlichen Datenspeicher auf der Seite null. In Umgebungen, in denen die physische Sicherheit der Datendateien oder des zugrundeliegenden Speichers gefährdet ist, können Sie dieses gespeicherte Verfahren verwenden, um sicherzustellen, dass keine verbleibenden gelöschten Daten in den Dateien oder im Speicher verbleiben.

Die benötigte Laufzeit sp_clean_db_file_free_space hängt von der Größe der Datendatei, der Anzahl der verwendeten Seiten in der Datei und den I/O-Funktionen der Festplatte ab. Da Laufen sp_clean_db_file_free_space die I/O-Aktivität erheblich erhöhen kann, empfehlen wir, dieses Verfahren außerhalb der üblichen Betriebszeiten durchzuführen.

Vor dem Ausführen sp_clean_db_file_free_spaceempfehlen wir, eine vollständige Datenbanksicherung zu erstellen.

Um diese Operation für alle Datendateien in einer Datenbank auszuführen, verwenden Sie sp_clean_db_free_space.

Berechtigungen

Erfordert die Mitgliedschaft in der db_owner-Datenbankrolle .

Beispiele

Im folgenden Beispiel werden alle Restinformationen aus der primären Datendatei der AdventureWorks2025-Datenbank gelöscht.

USE master;
GO

EXECUTE sp_clean_db_file_free_space
    @dbname = N'AdventureWorks2022',
    @fileid = 1;