You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/relational-databases/system-dynamic-management-views/sys-dm-tran-persistent-version-store-stats.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: sys.dm_tran_persistent_version_store_stats returns information for
4
4
author: rwestMSFT
5
5
ms.author: randolphwest
6
6
ms.reviewer: wiassaf, dfurman
7
-
ms.date: 02/05/2025
7
+
ms.date: 02/02/2026
8
8
ms.service: sql
9
9
ms.subservice: system-objects
10
10
ms.topic: "reference"
@@ -42,10 +42,10 @@ Returns information for accelerated database recovery (ADR) persistent version s
42
42
|`min_transaction_timestamp`|**bigint**| The minimum useful timestamp in the system from snapshot scans. |
43
43
|`online_index_min_transaction_timestamp`|**bigint**| The minimum useful timestamp in the system to hold up the PVS cleanup during online index builds. |
44
44
|`secondary_low_water_mark`|**bigint**| The low water mark aggregated for queries on readable secondaries. The value is a transaction ID and can be matched with `oldest_active_transaction_id` and `oldest_aborted_transaction_id`. |
45
-
|`offrow_version_cleaner_start_time`|**datetime2(7)**| The last start time of the off-row PVS cleanup process. |
46
-
|`offrow_version_cleaner_end_time`|**datetime2(7)**| The last end time of the off-row PVS cleanup process. If start time has value but the end time doesn't, it means PVS cleanup is ongoing on this database. |
47
-
|`aborted_version_cleaner_start_time`|**datetime2(7)**| The start timestamp of the last aborted transaction sweep. |
48
-
|`aborted_version_cleaner_end_time`|**datetime2(7)**| The end timestamp of last aborted transaction sweep. If start time has value but the end time doesn't, it means PVS cleanup is ongoing on this database. |
45
+
|`offrow_version_cleaner_start_time`|**datetime2(7)**| The start time of the last sweep that cleaned up off-row versions. |
46
+
|`offrow_version_cleaner_end_time`|**datetime2(7)**| The end time of the last sweep that cleaned up off-row versions. If start time has value but the end time doesn't, it means PVS cleanup is ongoing on this database. |
47
+
|`aborted_version_cleaner_start_time`|**datetime2(7)**| The start timestamp of the last sweep that cleaned up aborted transactions and in-row versions. |
48
+
|`aborted_version_cleaner_end_time`|**datetime2(7)**| The end timestamp of last sweep that cleaned up aborted transactions and in-row versions. If start time has value but the end time doesn't, it means PVS cleanup is ongoing on this database. |
49
49
|`pvs_off_row_page_skipped_low_water_mark`|**bigint**| The number of pages skipped during cleanup due to hold up from secondary read queries. |
50
50
|`pvs_off_row_page_skipped_transaction_not_cleaned`|**bigint**| The number of pages skipped during cleanup due to aborted transactions. Note this value doesn't reflect the PVS hold up from aborted transactions since the version cleaner uses a min threshold for aborted transaction version cleanup. Can be ignored when troubleshooting large PVS issues. |
51
51
|`pvs_off_row_page_skipped_oldest_active_xdesid`|**bigint**| The number of pages skipped during cleanup due to the oldest active transaction. |
[!INCLUDE [SQL Server 2019, ASDB, ASDBMI-fabricsqldb](../../includes/applies-to-version/sqlserver2019-asdb-asdbmi-fabricsqldb.md)]
25
25
26
-
Manually starts persistent version store (PVS) cleanup process, a key element of accelerated database recovery (ADR). This cleaner also removes uncommitted data in PVS from aborted transactions.
26
+
Manually starts persistent version store (PVS) cleanup process, a key element of accelerated database recovery (ADR). This cleaner also removes uncommitted changes in PVS from aborted transactions, known as the asynchronous logical revert.
27
27
28
28
It isn't typically necessary to start the PVS cleanup process manually using `sys.sp_persistent_version_cleanup`. However in some scenarios, you might want to initiate the PVS cleanup process manually during a known period of rest/recovery after busy OLTP activity.
29
29
@@ -53,15 +53,15 @@ Optional. *@scanallpages* is **bit**, with a default of `0`. When set to `1`, th
53
53
54
54
#### [ @clean_option = ]*clean_option*
55
55
56
-
Optional. Possible options determine whether or not to reclaim off-row PVS page. *@clean_option* is **int**, with a default of `0`. This reference isn't commonly needed and the default value `0` is recommended.
56
+
Optional. The option to determine the type of cleanup to perform. *@clean_option* is **int**, with a default of `0`. This parameter isn't commonly needed and the default value `0` is recommended.
57
57
58
58
| Value | Description |
59
-
|:--- |:--- |
60
-
|`0`| Default, no option specified|
61
-
|`1`| off-row version store without checking individual PVS page contents |
62
-
|`2`| off-row version store with each PVS page visited|
63
-
|`3`| in-row version storeonly |
64
-
|`4`|internal use only |
59
+
| --- | --- |
60
+
|`0`| Default, perform all cleanup.|
61
+
|`1`|Clean up the off-row [version storage](../sql-server-transaction-locking-and-row-versioning-guide.md#space-used-by-the-persistent-version-store-pvs) without examining PVS page contents. Faster, but might skip deallocation of unused pages in PVS.|
62
+
|`2`|Clean up the off-row [version storage](../sql-server-transaction-locking-and-row-versioning-guide.md#space-used-by-the-persistent-version-store-pvs) by checking each PVS page contents. Slower, but deallocates all unused pages.|
63
+
|`3`|Perform the in-row [version storage](../sql-server-transaction-locking-and-row-versioning-guide.md#space-used-by-the-persistent-version-store-pvs) cleanup only.|
64
+
|`4`|Perform the aborted transaction cleanup (logical revert) only.|
0 commit comments