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.
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;