Sdílet prostřednictvím


sys.sp_persistent_version_cleanup (Transact-SQL)

platí pro: SQL Server 2019 (15.x) Azure SQL Databaseazure SQL Managed Instance

Ruční spuštění procesu vyčištění trvalého úložiště verzí (PVS), klíčového prvku akcelerované obnovení databáze (ADR). Tento čistější vrácení nepotvrzených dat v PVS z přerušených transakcí.

Obvykle není nutné spustit proces čištění PVS ručně pomocí sys.sp_persistent_version_cleanup. V některých scénářích ale můžete v známé době nečinnosti nebo obnovení po zaneprázdněné aktivitě OLTP zahájit proces čištění PVS ručně.

Další informace o ADR naleznete v tématu akcelerované obnovení databáze.

Transact-SQL konvence syntaxe

Syntax

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

Argumenty

[ @dbname = ] N'dbname'

Volitelný. Název databáze, která se má vyčistit. Pokud není zadaný, použije aktuální kontext databáze. @dbname je sysname , s výchozím NULL.

[ @scanallpages = ] scanallpages

Volitelný. @scanallpages je bit, s výchozím 0. Pokud je tato možnost nastavená na 1, vynutí vyčištění všech databázových stránek, i když není verze.

[ @clean_option = ] clean_option

Volitelný. Možné možnosti určují, jestli se má uvolnit stránka PVS mimo řádek. @clean_option je int s výchozím 0. Tento odkaz není běžně potřeba a doporučuje se výchozí hodnota 0.

Hodnota Popis
0 Výchozí, není zadána žádná možnost.
1 Off-row version store without checking individual PVS page contents
2 Off-row version store with each PVS page visited
3 Pouze úložiště verzí v řádku
4 pouze interní použití

Návratové hodnoty kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Žádný.

Dovolení

Vyžaduje oprávnění ALTER k databázi.

Poznámky

sys.sp_persistent_version_cleanup uložená procedura je synchronní, což znamená, že se nedokončí, dokud se všechny informace o verzi nevyčistí z aktuálního pvS.

V SQL Serveru 2019 (15.x) se proces čištění PVS spustí jenom pro jednu databázi najednou. V Azure SQL Database a Azure SQL Managed Instance a počínaje SQL Serverem 2022 (16.x) se proces čištění PVS může paralelně spouštět s více databázemi ve stejné instanci.

Pokud je proces čištění PVS již spuštěn proti požadované databázi, tato uložená procedura je blokována před spuštěním jiného procesu čištění PVS. Aktivní dlouhotrvající transakce v jakékoli databázi ve stejné instanci databázového stroje, která má povolenou službu ADR, může také blokovat vyčištění PVS.

Pomocí následujícího ukázkového dotazu můžete monitorovat úlohu čištění verzí:

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

Pokud je služba ADR zakázaná, spusťte sys.sp_persistent_version_cleanup a vyčistíte předchozí verze i nadále v pvs.

Příklady

Pokud chcete proces čištění PVS aktivovat ručně mezi úlohami nebo během údržby, použijte následující ukázkový skript:

EXEC sys.sp_persistent_version_cleanup [database_name];

Například:

EXEC sys.sp_persistent_version_cleanup [WideWorldImporters];

Nebo předpokládejme aktuální kontext databáze:

USE [WideWorldImporters];
GO
EXEC sys.sp_persistent_version_cleanup;