Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              van toepassing op: SQL Server 2019 (15.x) 
Azure SQL Database
Azure SQL Managed Instance
Hiermee start u handmatig het opschonen van permanente versieopslag (PVS), een belangrijk element van versneld databaseherstel (ADR). Deze schoner verwijdert ook niet-doorgevoerde gegevens in PVS uit afgebroken transacties.
Het is doorgaans niet nodig om het PVS-opschoonproces handmatig te starten met behulp van sys.sp_persistent_version_cleanup. In sommige scenario's wilt u het PVS-opschoonproces echter handmatig starten tijdens een bekende periode van rust/herstel na bezet OLTP-activiteit.
Zie Versneld databaseherstelvoor meer informatie over ADR.
              
              
              Transact-SQL syntaxisconventies
Syntaxis
sp_persistent_version_cleanup
    [ [ @dbname = ] N'dbname' ]
    [ , [ @scanallpages = ] scanallpages ]
    [ , [ @clean_option = ] clean_option ]
[ ; ]
Argumenten
[ @dbname = ] N'dbname'
Facultatief. De naam van de database die moet worden opgeschoond. Als deze niet is opgegeven, gebruikt u de huidige databasecontext. 
              @dbname is sysname, met een standaardwaarde van NULL.
[ @scanallpages = ] scanallpages
Facultatief. 
              @scanallpages is bit, met een standaardwaarde van 0. Als deze optie is ingesteld op 1, worden met deze optie alle databasepagina's opgeschoond, zelfs als deze niet zijn geversied.
[ @clean_option = ] clean_option
Facultatief. Mogelijke opties bepalen of de PVS-pagina buiten rij moet worden vrijgemaakt. 
              @clean_option is int, met een standaardwaarde van 0. Deze verwijzing is niet vaak nodig en de standaardwaarde 0 wordt aanbevolen.
| Waarde | Beschrijving | 
|---|---|
0 | 
Standaard, geen optie opgegeven | 
1 | 
Archief met externe versies zonder de inhoud van afzonderlijke PVS-pagina's te controleren | 
2 | 
Archief met off-row-versies waarbij elke PVS-pagina wordt bezocht | 
3 | 
alleen in-rij-versiearchief | 
4 | 
alleen intern gebruik | 
Codewaarden retourneren
              0 (geslaagd) of 1 (mislukt).
Resultatenset
Geen.
Machtigingen
Vereist de ALTER machtiging voor de database.
Opmerkingen
De sys.sp_persistent_version_cleanup opgeslagen procedure is synchroon, wat betekent dat deze pas wordt voltooid als alle versiegegevens worden opgeschoond uit de huidige PVS.
In SQL Server 2019 (15.x) wordt het PVS-opschoonproces alleen uitgevoerd voor één database tegelijk. In Azure SQL Database en Azure SQL Managed Instance, en vanaf SQL Server 2022 (16.x), kan het PVS-opschoonproces parallel worden uitgevoerd op meerdere databases in hetzelfde exemplaar.
Als het PVS-opschoonproces al wordt uitgevoerd voor de gewenste database, wordt deze opgeslagen procedure geblokkeerd voordat een ander PVS-opschoonproces wordt gestart. Actieve, langlopende transacties in elke database op hetzelfde exemplaar van de database-engine waarvoor ADR is ingeschakeld, kunnen ook PVS-opschoning blokkeren.
U kunt de versiereinigerstaak controleren door te zoeken naar het proces met de volgende voorbeeldquery:
SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';
Een actieve transactie kan verhinderen dat het PVS-opschoonproces wordt gestart. Als dit gebeurt, wacht de sessie waarop de sys.sp_persistent_version_cleanup opgeslagen procedure wordt uitgevoerd met het PVS_CLEANUP_LOCK wachttype. U kunt wachten tot de transactie is voltooid of u kunt overwegen om de blokkersessie te beëindigen met een actieve transactie, indien mogelijk.
Als ADR is uitgeschakeld, voert u sys.sp_persistent_version_cleanup uit om eerdere versies nog steeds in de PVS op te schonen.
Voorbeelden
Als u het PVS-opschoonproces handmatig wilt activeren tussen werkbelastingen of tijdens onderhoudsvensters, gebruikt u het volgende voorbeeldscript:
EXECUTE sys.sp_persistent_version_cleanup [database_name];
Bijvoorbeeld:
EXECUTE sys.sp_persistent_version_cleanup [WideWorldImporters];
U kunt ook uitgaan van de huidige databasecontext:
USE [WideWorldImporters];
GO
EXECUTE sys.sp_persistent_version_cleanup;