Share via


sys.dm_tran_transactions_snapshot (Transact-SQL)

針對每一個快照集交易啟動時作用中的 sequence_number,傳回一份虛擬資料表。此檢視傳回的資訊可以協助您執行下列工作:

  • 尋找目前作用中快照集交易的數目。

  • 識別特定快照集交易所忽略的資料修改。快照集交易啟動時作用中交易進行的所有資料修改 (包括該交易認可之後所做的修改) 都會被快照集交易忽略。

例如,假設 sys.dm_tran_transactions_snapshot 的輸出如下:

transaction_sequence_num snapshot_id snapshot_sequence_num
------------------------ ----------- ---------------------
59                       0           57
59                       0           58
60                       0           57
60                       0           58
60                       0           59
60                       3           57
60                       3           58
60                       3           59
60                       3           60

transaction_sequence_num 資料行識別目前快照集交易的交易序號 (XSN)。輸出中顯示兩個序號:59 和 60。snapshot_sequence_num 資料行識別每個快照集交易啟動時作用中交易的交易序號。

輸出中顯示快照集交易 XSN-59 啟動時,有兩個作用中交易 XSN-57 和 XSN-58 正在執行。如果 XSN-57 或 XSN-58 進行資料修改,XSN-59 會忽略這些變更,並使用資料列版本控制來維護資料庫的交易一致檢視。

快照集交易 XSN-60 會忽略 XSN-57 和 XSN-58 以及 XSN 59 所做的資料修改。

語法

dm_tran_transactions_snapshot

傳回的資料表

資料行名稱

資料類型

描述

transaction_sequence_num

bigint

快照集交易的交易序號 (XSN)。

snapshot_id

int

在使用資料列版本控制之讀取認可之下啟動的每一個 Transact-SQL 陳述式的快照集識別碼。這個值可用來產生資料庫的交易一致檢視,該資料庫支援在使用資料列版本控制之讀取認可快照集下面執行的每一項查詢。

snapshot_sequence_num

bigint

當快照集交易啟動時作用中交易的交易序號。

權限

需要伺服器的 VIEW SERVER STATE 權限。

備註

當快照集交易啟動時,Database Engine 會記錄當時作用中的所有交易。sys.dm_tran_transactions_snapshot 會報告目前所有作用中快照集交易的這項資訊。

每一項交易都由交易開始時指派的交易序號所識別。交易是在 BEGIN TRANSACTION 或 BEGIN WORK 陳述式執行時啟動。不過,Database Engine 會隨著在 BEGIN TRANSACTION 或 BEGIN WORK 陳述式之後存取資料的第一個 Transact-SQL 陳述式執行時指派交易序號。交易序號以 1 遞增。