Question

What is the purpose of the MS Shipped table: sys.persistent_version_store?

Why do I want to know

Primarily curiosity, partly because it may relate to an issue waiting to bite us...

We're running a SaaS instance of MS Dynamics 365 for Finance and Operations. This has very limited tools for monitoring performance. Whilst trying to find something of meaning I discovered that this table had an insanely high row count (~75,000,000). That seems worrying. It's possible that this is OK, but MS have included it on their analysis tools, meaning that this eclipses all other information on the graph (since it has a linear scale) making the graph pointless. I want to understand what this table is so I can determine if it's something to be investigated, or if it's just bad design to have included it on the monitoring tools.

Why not read the documentation

Since it's an MS table it should be documented somewhere. However, searching persistent_version_store gives 1 result, and it's in Chinese. Searching for Persistence Version Store does better; but it's unclear whether this is the same thing / there's not much documentation on what it is; only how to fix issues where it's reached its maximum size.

Was it helpful?

Solution

The persistent_version_store table is maintained by the Accelerated Database Recovery option. It is a persistent store of database changes over time.

OTHER TIPS

Since this question hasn't had any comments or answers since August 2018 I'm going to assume nothing came of the large number of rows, but documenting the structure of the table might be useful to someone.

This table can be found in SQL Server 2019 Preview (CTP 2.2 as of this writing).

CREATE TABLE sys.persistent_version_store (
    xdes_ts_push bigint,
    xdes_ts_tran bigint,
    subid_push int,
    subid_tran int,
    rowset_id bigint,
    sec_version_rid binary(8),
    min_len smallint,
    seq_num bigint
    prev_row_in_chain binary(8),
    row_version varbinary(8000)
);

Perhaps given the high churn of a Dynamics environment, the version store did have a lot of rows, but they were short-lived?

Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top