sys.sp_persistent_version_sauber up (Transact-SQL)

Gilt für: SQL Server 2019 (15.x) Azure SQL-Datenbank Azure SQL-verwaltete Instanz

Startet manuell den permanenten Versionsspeicher (PVS) sauber up-Prozess, ein Schlüsselelement der beschleunigten Datenbankwiederherstellung (ADR). Dieser sauber er rollt aus abgebrochenen Transaktionen nicht ausgelassene Daten in der PVS zurück.

Es ist in der Regel nicht erforderlich, den PVS-sauber up-Prozess manuell zu sys.sp_persistent_version_cleanupstarten. In einigen Szenarien sollten Sie den PVS-sauber Up-Prozess jedoch in einem bekannten Zeitraum der Ruhe/Wiederherstellung nach der olTP-Aktivität manuell initiieren.

Weitere Informationen zu ADR in Azure SQL finden Sie unter Beschleunigte Datenbankwiederherstellung in Azure SQL.

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 sauber nach oben. 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 <a0/> festgelegt ist, wird die sauber up aller Datenbankseiten erzwungen, auch wenn dies nicht der Fall ist.

[ @clean_option = ] sauber_option

Optional. Mögliche Optionen bestimmen, ob die PvS-Seite aus zeilenweise zurückgezahlt werden soll. @sauber_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 (Erfolg) oder 1 (Fehler).

Resultset

Keine.

Berechtigungen

Erfordert die BERECHTIGUNG ALTER DATABASE, die ausgeführt werden soll.

Hinweise

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

In SQL Server 2019 (15.x) wird der PVS-sauber upprozess 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-sauber Upprozess parallel zu mehreren Datenbanken in derselben Instanz ausgeführt werden.

Wenn der PVS-sauber Up-Prozess bereits für die gewünschte Datenbank ausgeführt wird, wird diese gespeicherte Prozedur blockiert und wartet auf den Abschluss, bevor ein weiterer PVS-sauber upprozess gestartet wird. Aktive, lange ausgeführte Transaktionen in jeder Datenbank, in der ADR aktiviert ist, können auch sauber up der PVS blockieren. Sie können die Version sauber er-Aufgabe überwachen, indem Sie mit der folgenden Beispielabfrage nach dem Prozess suchen:

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

Begrenzungen

Die Datenbankspiegelung kann nicht für eine Datenbank festgelegt werden, für die ADR aktiviert ist, oder es gibt weiterhin Versionen im permanenten Versionsspeicher (PVS). Wenn ADR deaktiviert ist, fahren Sie sys.sp_persistent_version_cleanup mit sauber vorherigen Versionen fort, die sich noch im PVS befinden.

Beispiele

Verwenden Sie das folgende Beispielskript, um den PVS-sauber upprozess manuell zwischen Workloads oder während Standard-Fenstern zu aktivieren:

EXEC sys.sp_persistent_version_cleanup [database_name];

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;