Sql-Server

讀取送出的快照隔離級別如何將 tempdb 中的行與原始行關聯(連結)?

  • May 18, 2022

我知道讀取送出的快照隔離級別包含 tempdb 中的行版本。

我在一個測試數據庫上啟用了這個功能,我希望看到一個新列 ( guid) 自動添加到源數據表中(我認為 SQL 將使用它來連結到 tempdb 中的記錄)。但是我沒有明顯看到這樣的專欄。

讀取送出的快照隔離級別如何將 tempdb 中的行與原始行關聯(連結)?

SQL Server 將此 14 字節成本添加為內部資訊。如 MBuschi 所述,您需要使用特殊命令來查看成本。

請注意,在您打開 RCSI 之後修改行之前,不會添加成本。

這 14 個字節是兩條資訊的組合:

  1. XSN(事務序列號),它標識執行修改的事務。這是 6 個字節。
  2. RID,指向版本化行的指針。這是 8 個字節。

文件

您看不到添加到每一行的元數據作為新列。畢竟,如果它像你寫的那樣工作,它會破壞任何東西(視圖、過程、應用程序)。

您可以使用查看行大小差異

DBCC TRACEON(3604)
DBCC PAGE('mytable',PageNo, PageType, 3)

您可以在更改隔離級別之前和之後檢查輸出中的記錄大小。

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