Sdílet prostřednictvím


sys.dm_tran_current_transaction (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Vrátí jeden řádek, který zobrazuje informace o stavu transakce v aktuální relaci.

Poznámka:

Pro volání z Azure Synapse Analytics nebo Analytics Platform System (PDW) použijte název sys.dm_pdw_nodes_tran_current_transaction. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Syntaxe

  
sys.dm_tran_current_transaction  

Vrácená tabulka

Název sloupce Datový typ Description
transaction_id bigint ID transakce aktuálního snímku.
transaction_sequence_num bigint Pořadové číslo transakce, která generuje verzi záznamu.
transaction_is_snapshot bit Stav izolace snímku. Tato hodnota je 1, pokud je transakce zahájena v izolaci snapshotu. Jinak je hodnota 0.
first_snapshot_sequence_num bigint Nejnižší sekvenční číslo transakcí z transakcí, které byly aktivní v době pořízení snapshotu. Při provedení snapshot transakce pořídí snímek všech aktivních transakcí v daném okamžiku. Pro transakce bez snapshotů tento sloupec ukazuje 0.
last_transaction_sequence_num bigint Globální pořadové číslo. Tato hodnota představuje poslední sekvenční číslo transakce, které systém generoval.
first_useful_sequence_num bigint Globální pořadové číslo. Tato hodnota představuje nejstarší sekvenční číslo transakce transakce, která má verze, jež musí být uloženy ve skladu verzí. Verze řádků vytvořené předchozími transakcemi lze odstranit.
pdw_node_id int Platí na: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifikátor uzlu, na který je tato distribuce zapnutá.

Povolení

Na SQL Serveru a službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.

U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.

Examples

Následující příklad používá testovací scénář, ve kterém v databázi běží čtyři souběžné transakce, každá označená sekvenčním číslem transakce (XSN), která má nastavené možnosti ALLOW_SNAPSHOT_ISOLATION a READ_COMMITTED_SNAPSHOT na ON. Probíhají následující transakce:

  • XSN-57 je aktualizační operace v rámci serializovatelné izolace.

  • XSN-58 je stejný jako XSN-57.

  • XSN-59 je vybraná operace při izolaci snímků.

  • XSN-60 je stejný jako XSN-59.

Následující dotaz je vykonán v rámci každé transakce.

SELECT   
    transaction_id  
   ,transaction_sequence_num  
   ,transaction_is_snapshot  
   ,first_snapshot_sequence_num  
   ,last_transaction_sequence_num  
   ,first_useful_sequence_num  
  FROM sys.dm_tran_current_transaction;  

Zde je výsledek pro XSN-59.

transaction_id       transaction_sequence_num transaction_is_snapshot  
-------------------- ------------------------ -----------------------  
9387                 59                       1                         
  
first_snapshot_sequence_num last_transaction_sequence_num  
--------------------------- -----------------------------  
57                               61                        
  
first_useful_sequence_num  
-------------------------  
57  

Výstup ukazuje, že XSN-59 je snapshot transakce, která používá XSN-57 jako první transakci aktivní při spuštění XSN-59. To znamená, že XSN-59 čte data potvrzená transakcemi s pořadovým číslem menším než XSN-57.

Zde je výsledek pro XSN-57.

transaction_id       transaction_sequence_num transaction_is_snapshot  
-------------------- ------------------------ -----------------------  
9295                 57                       0  
  
first_snapshot_sequence_num last_transaction_sequence_num  
--------------------------- -----------------------------  
NULL                        61  
  
first_useful_sequence_num  
-------------------------  
57  

Protože XSN-57 není snapshot transakce, first_snapshot_sequence_num je .NULL

Viz také

Zobrazení a funkce dynamické správy (Transact-SQL)
Transakčně orientovaná dynamická správa pohledů a funkcí (Transact-SQL)