什么是persistent_version_store 表?

Joh*_*van 6 azure-sql-database system-tables microsoft-dynamics

MS Shipped 表的目的是什么:sys.persistent_version_store

为什么我想知道

主要是好奇心,部分原因是它可能与一个等待咬我们的问题有关......

我们正在运行 MS Dynamics 365 for Finance and Operations 的 SaaS 实例。这用于监控性能的工具非常有限。在试图找到一些有意义的东西时,我发现这张表的行数非常高(~75,000,000)。这似乎令人担忧。这可能没问题,但 MS 已将其包含在他们的分析工具中,这意味着这会使图表上的所有其他信息黯然失色(因为它具有线性标度),从而使图表毫无意义。我想了解这张表是什么,以便我可以确定它是否需要调查,或者将它包含在监控工具中是否只是糟糕的设计。

为什么不看文档

由于它是一个 MS 表,因此应该在某处进行记录。但是,搜索persistent_version_store给出了1 个结果,而且是中文的。搜索Persistence Version Store效果更好;但目前还不清楚这是否是同一件事/关于它是什么的文件不多;只有如何解决达到最大大小的问题。

Ran*_*est 6

由于自 2018 年 8 月以来这个问题没有任何评论或答案,我假设大量行没有任何结果,但记录表的结构可能对某人有用。

该表可以在 SQL Server 2019 预览版(撰写本文时为 CTP 2.2)中找到。

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)
);
Run Code Online (Sandbox Code Playgroud)

也许考虑到 Dynamics 环境的高变动性,版本存储确实有很多行,但它们是短暂的?


小智 3

permanent_version_store 表由加速数据库恢复选项维护。它是数据库随时间变化的持久存储。