Sql-Server
讀取送出的快照隔離級別如何將 tempdb 中的行與原始行關聯(連結)?
我知道讀取送出的快照隔離級別包含 tempdb 中的行版本。
我在一個測試數據庫上啟用了這個功能,我希望看到一個新列 (
guid
) 自動添加到源數據表中(我認為 SQL 將使用它來連結到 tempdb 中的記錄)。但是我沒有明顯看到這樣的專欄。讀取送出的快照隔離級別如何將 tempdb 中的行與原始行關聯(連結)?
SQL Server 將此 14 字節成本添加為內部資訊。如 MBuschi 所述,您需要使用特殊命令來查看成本。
請注意,在您打開 RCSI 之後修改行之前,不會添加成本。
這 14 個字節是兩條資訊的組合:
- XSN(事務序列號),它標識執行修改的事務。這是 6 個字節。
- RID,指向版本化行的指針。這是 8 個字節。
您看不到添加到每一行的元數據作為新列。畢竟,如果它像你寫的那樣工作,它會破壞任何東西(視圖、過程、應用程序)。
您可以使用查看行大小差異
DBCC TRACEON(3604) DBCC PAGE('mytable',PageNo, PageType, 3)
您可以在更改隔離級別之前和之後檢查輸出中的記錄大小。