Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2019 (15.x)
Azure SQL Database
azure 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). Tím se také odstraní nepotvrzená data 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 chtít proces čištění PVS zahájit ručně během známé doby nečinnosti nebo obnovení po zaneprázdněné aktivitě OLTP.
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%';
Aktivní transakce může zabránit spuštění procesu čištění PVS. Pokud k tomu dojde, relace spuštěná sys.sp_persistent_version_cleanup
uložená procedura čeká s typem čekání PVS_CLEANUP_LOCK. Můžete počkat na dokončení transakce, nebo můžete zvážit ukončení relace blokování aktivní transakce, pokud je to možné.
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;