März 12, 2022

sp_clean_db_free_space (Transact-SQL)

  • Artikel
  • 01/29/2021
  • 2 minuten zum Lesen
    • m
    • c
    • r
    • p
    • M
    • +4
Ist diese Seite hilfreich?

Danke.

Gilt für: yesSQL Server (alle unterstützten Versionen)

Entfernt verbleibende Informationen auf Datenbankseiten aufgrund von Datenänderungsroutinen in SQL Server. sp_clean_db_free_space bereinigt alle Seiten in allen Dateien der Datenbank.

Topic Link icon Transact-SQL Syntaxkonventionen

Syntax

sp_clean_db_free_space 'database_name' 'delay_in_seconds' ] 

Argumente

@dbname = ‚database_name‘
Ist der Name der zu bereinigenden Datenbank. dbname ist sysname und darf nicht NULL sein.

@cleaning_delay = ‚delay_in_seconds‘
Gibt ein Intervall an, das zwischen dem Bereinigen von Seiten verzögert werden soll. Dies hilft, die Auswirkungen auf das E / A-System zu reduzieren. delay_in_seconds ist int mit dem Standardwert 0.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Anmerkungen

Löschvorgänge aus einer Tabelle oder Aktualisierungsvorgänge, die eine Zeile verschieben, können sofort Speicherplatz auf einer Seite freigeben, indem Verweise auf die Zeile entfernt werden. Unter bestimmten Umständen kann die Zeile jedoch physisch als Geisterdatensatz auf der Datenseite verbleiben. Geisterdatensätze werden regelmäßig durch einen Hintergrundprozess entfernt. Diese Restdaten werden vom Datenbankmodul nicht als Antwort auf Abfragen zurückgegeben. In Umgebungen, in denen die physische Sicherheit der Daten oder Sicherungsdateien gefährdet ist, können Sie jedoch sp_clean_db_free_space verwenden, um diese Geisterdatensätze zu bereinigen. Um diesen Vorgang pro Datenbankdatei auszuführen, verwenden Sie sp_clean_db_file_free_space (Transact-SQL).

Die Dauer der Ausführung von sp_clean_db_free_space hängt von der Größe der Datei, dem verfügbaren freien Speicherplatz und der Kapazität der Festplatte ab. Da die Ausführung von sp_clean_db_free_space die E / A-Aktivität erheblich beeinträchtigen kann, empfehlen wir, dieses Verfahren außerhalb der üblichen Betriebszeiten auszuführen.

Bevor Sie sp_clean_db_free_spaceausführen, sollten Sie eine vollständige Datenbanksicherung erstellen.

Die zugehörige gespeicherte Prozedur sp_clean_db_file_free_space kann eine einzelne Datei bereinigen.

Berechtigungen

Erfordert die Mitgliedschaft in der Datenbankrolle db_owner.

Beispiele

Das folgende Beispiel bereinigt alle verbleibenden Informationen aus der AdventureWorks2012-Datenbank.

USE master; GO EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2012'; 

Siehe auch

Gespeicherte Prozeduren des Datenbankmoduls (Transact-SQL)
Ghost Cleanup Process Guide
sp_clean_db_file_free_space (Transact-SQL)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.