System-Tables

什麼是 persistent_version_store 表?

  • September 15, 2021

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效果更好;但尚不清楚這是否是同一件事/沒有太多關於它的文件;僅如何解決達到最大尺寸的問題。

persistent_version_store 表由 Accelerated Database Recovery 選項維護。它是數據庫隨時間變化的持久儲存。

由於這個問題自 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)
);

也許考慮到 Dynamics 環境的高流失率,版本儲存確實有很多行,但它們是短暫的?

引用自:https://dba.stackexchange.com/questions/215851