sys.dm_tran_current_snapshot (Transact-SQL)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
傳回虛擬數據表,顯示目前快照集交易啟動時的所有使用中交易。 如果目前的交易不是快照集交易,則此函式不會傳回任何數據列。 sys.dm_tran_current_snapshot與sys.dm_tran_transactions_snapshot類似,不同之處在於sys.dm_tran_current_snapshot只傳回目前快照集交易的作用中交易。
注意
若要從 Azure Synapse Analytics 或 Analytics Platform System (PDW) 呼叫此專案,請使用名稱 sys.dm_pdw_nodes_tran_current_snapshot。 Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。
語法
sys.dm_tran_current_snapshot
傳回的資料表
資料行名稱 | 資料類型 | 描述 |
---|---|---|
transaction_sequence_num | bigint | 使用中交易的交易序號。 |
pdw_node_id | int | 適用於:Azure Synapse Analytics、Analytics Platform System (PDW) 此散發節點的標識碼。 |
權限
在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE
權限。
在 SQL Database [Basic]、[S0] 和 [S1] 服務目標,以及彈性集區中的資料庫,需要伺服器管理員帳戶、伺服器管理員帳戶、Microsoft Entra 管理員帳戶或 ##MS_ServerStateReader##
伺服器角色的成員資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE
權限或 ##MS_ServerStateReader##
伺服器角色的成員資格。
SQL Server 2022 及更新版本的權限
需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。
範例
下列範例會使用一個測試案例,其中四個並行交易,每個交易都是由交易序號 (XSN) 所識別,且資料庫中有設定為 ON 的ALLOW_SNAPSHOT_ISOLATION和READ_COMMITTED_SNAPSHOT選項。 下列交易正在執行:
XSN-57 是可串行化隔離下的更新作業。
XSN-58 與 XSN-57 相同。
XSN-59 是快照隔離下的選取作業。
XSN-60 與 XSN-59 相同。
下列查詢會在 XSN-59 的範圍內執行。
SELECT
transaction_sequence_num
FROM sys.dm_tran_current_snapshot;
結果集如下所示。
transaction_sequence_num
------------------------
57
58
結果顯示 XSN-57 和 XSN-58 在快照集交易 XSN-59 啟動時作用中。 即使在 XSN-57 和 XSN-58 認可或回復之後,此相同結果仍會持續發生,直到快照集交易完成為止。
相同的查詢會在 XSN-60 的範圍內執行。
結果集如下所示。
transaction_sequence_num
------------------------
57
58
59
XSN-60 的輸出包含 XSN-59 所顯示的相同交易,但也包含 XSN-59,XSN-60 啟動時作用中。