Freigeben über


sys.sp_persistent_version_cleanup (Transact-SQL)

Gilt für: SQL Server 2019 (15.x) Azure SQL-DatenbankAzure SQL Managed Instance

Startet manuell den Bereinigungsprozess für beständigen Versionsspeicher (PVS), ein Schlüsselelement der beschleunigten Datenbankwiederherstellung (ADR). Dieser Cleaner rollt nicht ausgelassene Daten in der PVS aus abgebrochenen Transaktionen zurück.

Normalerweise ist es nicht notwendig, den PVS-Bereinigungsprozess manuell zu sys.sp_persistent_version_cleanupstarten. In einigen Szenarien sollten Sie den PVS-Bereinigungsprozess in einem bekannten Zeitraum der Ruhe/Wiederherstellung nach der olTP-Aktivität jedoch manuell initiieren.

Weitere Informationen zu ADR finden Sie unter Beschleunigte Datenbankwiederherstellung.

Transact-SQL-Syntaxkonventionen

Syntax

sp_persistent_version_cleanup
    [ [ @dbname = ] N'dbname' ]
    [ , [ @scanallpages = ] scanallpages ]
    [ , [ @clean_option = ] clean_option ]
[ ; ]

Argumente

[ @dbname = ] N'dbname'

Optional. Der Name der Datenbank, die bereinigt werden soll. Wenn nicht angegeben, wird der aktuelle Datenbankkontext verwendet. @dbname ist "sysname" mit der Standardeinstellung "NULL.

[ @scanallpages = ] scanallpages

Optional. @scanallpages ist bit, mit einem Standardwert von 0. Wenn diese Option auf 1festgelegt ist, erzwingt diese Option das Bereinigen aller Datenbankseiten, auch wenn dies nicht der Fall ist.

[ @clean_option = ] clean_option

Optional. Mögliche Optionen bestimmen, ob die PvS-Seite aus zeilenweise zurückgezahlt werden soll. @clean_option ist int, mit einem Standardwert von 0. Dieser Verweis ist nicht häufig erforderlich, und der Standardwert 0 wird empfohlen.

Wert Beschreibung
0 Standard, keine Option angegeben
1 Off-Row-Versionsspeicher ohne Überprüfung einzelner PVS-Seiteninhalte
2 Off-Row-Versionsspeicher mit jeder besuchten PVS-Seite
3 Nur In-Row-Versionsspeicher
4 Nur interne Verwendung

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Berechtigungen

Erfordert die ALTER Berechtigung für die Datenbank.

Hinweise

Die sys.sp_persistent_version_cleanup gespeicherte Prozedur ist synchron, d. h., sie wird erst abgeschlossen, wenn alle Versionsinformationen aus dem aktuellen PVS bereinigt werden.

In SQL Server 2019 (15.x) wird der PVS-Bereinigungsprozess nur jeweils für eine Datenbank ausgeführt. In Azure SQL-Datenbank und Azure SQL verwaltete Instanz und beginnend mit SQL Server 2022 (16.x) kann der PVS-Bereinigungsprozess parallel für mehrere Datenbanken in derselben Instanz ausgeführt werden.

Wenn der PVS-Bereinigungsprozess bereits für die gewünschte Datenbank ausgeführt wird, wird diese gespeicherte Prozedur blockiert, bevor ein weiterer PVS-Bereinigungsprozess gestartet wird. Aktive, lange ausgeführte Transaktionen in jeder Datenbank in derselben Datenbankmodulinstanz, für die ADR aktiviert ist, können auch die PVS-Bereinigung blockieren.

Sie können die Version übersichtlicher überwachen, indem Sie mit der folgenden Beispielabfrage nach dem Prozess suchen:

SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';

Wenn ADR deaktiviert ist, führen Sie die sys.sp_persistent_version_cleanup Ausführung aus, um vorherige Versionen noch im PVS zu bereinigen.

Beispiele

Verwenden Sie das folgende Beispielskript, um den PVS-Bereinigungsprozess manuell zwischen Arbeitslasten oder Wartungsfenstern zu aktivieren:

EXEC sys.sp_persistent_version_cleanup [database_name];

Zum Beispiel:

EXEC sys.sp_persistent_version_cleanup [WideWorldImporters];

Oder gehen Sie wie im aktuellen Datenbankkontext vor:

USE [WideWorldImporters];
GO
EXEC sys.sp_persistent_version_cleanup;