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) a novější verze
Databáze Azure SQL Database
Azure SQL Managed Instance
SQL v Microsoft Fabric
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:
EXECUTE sys.sp_persistent_version_cleanup [database_name];
Například:
EXECUTE sys.sp_persistent_version_cleanup [WideWorldImporters];
Nebo předpokládejme aktuální kontext databáze:
USE [WideWorldImporters];
GO
EXECUTE sys.sp_persistent_version_cleanup;