Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2019 (15.x) i nowsze wersje bazy danych
SQL Sql Database azure SQL
Database
w usłudze Microsoft Fabric
Ręcznie uruchamia proces oczyszczania magazynu wersji trwałej (PVS), który jest kluczowym elementem przyspieszonego odzyskiwania bazy danych (ADR). Ten środek czyszczący usuwa również niezatwierdzone dane w pvS z przerwanych transakcji.
Zwykle nie jest konieczne ręczne uruchomienie procesu oczyszczania PVS przy użyciu sys.sp_persistent_version_cleanup. Jednak w niektórych scenariuszach można ręcznie zainicjować proces oczyszczania PVS w znanym okresie odpoczynku/odzyskiwania po zajętym działaniu OLTP.
Aby uzyskać więcej informacji na temat reguły ADR, zobacz przyspieszone odzyskiwanie bazy danych.
Transact-SQL konwencje składni
Składnia
sp_persistent_version_cleanup
[ [ @dbname = ] N'dbname' ]
[ , [ @scanallpages = ] scanallpages ]
[ , [ @clean_option = ] clean_option ]
[ ; ]
Argumenty
[ @dbname = ] N'dbname'
Fakultatywny. Nazwa bazy danych do oczyszczenia. Jeśli nie zostanie podana, użyje bieżącego kontekstu bazy danych.
@dbname jest nazwa systemu, z wartością domyślną NULL.
[ @scanallpages = ] scanallpages
Fakultatywny.
@scanallpages jest bitowąz wartością domyślną 0. Po ustawieniu wartości 1ta opcja wymusza czyszczenie wszystkich stron bazy danych, nawet jeśli nie są wersjonowane.
[ @clean_option = ] clean_option
Fakultatywny. Możliwe opcje określają, czy odzyskać stronę PVS poza wierszem. 0.
| Wartość | Opis |
|---|---|
0 |
Domyślnie nie określono żadnej opcji |
1 |
magazyn wersji poza wierszem bez sprawdzania zawartości poszczególnych stron PVS |
2 |
magazyn wersji poza wierszem z każdą odwiedzoną stroną PVS |
3 |
Tylko magazyn wersji w wierszu |
4 |
tylko do użytku wewnętrznego |
Zwracanie wartości kodu
0 (powodzenie) lub 1 (niepowodzenie).
Zestaw wyników
Żaden.
Uprawnienia
Wymaga uprawnienia ALTER w bazie danych.
Uwagi
Procedura składowana sys.sp_persistent_version_cleanup jest synchroniczna, co oznacza, że nie zostanie ukończona, dopóki wszystkie informacje o wersji nie będą czyszczone z bieżącego serwera PVS.
W programie SQL Server 2019 (15.x) proces oczyszczania PVS jest wykonywany tylko dla jednej bazy danych jednocześnie. W usługach Azure SQL Database i Azure SQL Managed Instance oraz począwszy od programu SQL Server 2022 (16.x) proces oczyszczania PVS może być wykonywany równolegle względem wielu baz danych w tym samym wystąpieniu.
Jeśli proces oczyszczania PVS jest już uruchomiony względem żądanej bazy danych, ta procedura składowana zostanie zablokowana przed rozpoczęciem innego procesu oczyszczania PVS. Aktywne, długotrwałe transakcje w dowolnej bazie danych w tym samym wystąpieniu aparatu bazy danych, które mają włączone reguły ADR, mogą również blokować czyszczenie PVS.
Zadanie czyszczenia wersji można monitorować, wyszukując jego proces za pomocą następującego przykładowego zapytania:
SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';
Aktywna transakcja może uniemożliwić rozpoczęcie procesu oczyszczania PVS. W takim przypadku sesja uruchamiana sys.sp_persistent_version_cleanup procedura składowana czeka z typem oczekiwania PVS_CLEANUP_LOCK. Możesz poczekać na zakończenie transakcji lub rozważyć zabicie sesji blokującej z aktywną transakcją, jeśli to możliwe.
Jeśli adr jest wyłączona, uruchom sys.sp_persistent_version_cleanup, aby wyczyścić poprzednie wersje nadal w pvS.
Przykłady
Aby ręcznie aktywować proces oczyszczania pvS między obciążeniami lub podczas okien obsługi, użyj następującego przykładowego skryptu:
EXECUTE sys.sp_persistent_version_cleanup [database_name];
Na przykład:
EXECUTE sys.sp_persistent_version_cleanup [WideWorldImporters];
Możesz też założyć bieżący kontekst bazy danych:
USE [WideWorldImporters];
GO
EXECUTE sys.sp_persistent_version_cleanup;