Partilhar via


sys.dm_tran_current_snapshot (Transact-SQL)

Aplica-se a:Banco de Dados SQL doAzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Banco de Dados SQL no Microsoft Fabric

Devolve uma tabela virtual que mostra todas as transações ativas no momento em que a transação snapshot atual começa. Se a transação atual não for uma transação snapshot, esta função não devolve linhas. sys.dm_tran_current_snapshot é semelhante ao sys.dm_tran_transactions_snapshot, exceto que sys.dm_tran_current_snapshot devolve apenas as transações ativas da transação instantânea atual.

Observação

Para chamar isto de Azure Synapse Analytics ou Analytics Platform System (PDW), use o nome sys.dm_pdw_nodes_tran_current_snapshot. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Sintaxe

  
sys.dm_tran_current_snapshot  

Tabela retornada

Nome da coluna Tipo de dados Description
transaction_sequence_num bigint Número de sequência da transação da transação ativa.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que esta distribuição se encontra.

Permissions

No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.

No Banco de Dados SQL Basic, S0e S1 objetivos de serviço e para bancos de dados em pools elásticos , a conta de de administrador do servidor, a conta de de administrador do Microsoft Entra ou a associação aode função de servidor ##MS_ServerStateReader## é necessária. Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.

Permissões para SQL Server 2022 e posterior

Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Examples

O exemplo seguinte utiliza um cenário de teste em que quatro transações concorrentes, cada uma identificada por um número de sequência de transação (XSN), estão a correr numa base de dados que tem as opções ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT definidas para ON. As seguintes transações estão a decorrer:

  • O XSN-57 é uma operação de atualização sob isolamento serializável.

  • O XSN-58 é igual ao XSN-57.

  • O XSN-59 é uma operação de seleção sob isolamento de instantâneos.

  • O XSN-60 é igual ao XSN-59.

A consulta seguinte é executada dentro do âmbito do XSN-59.

SELECT   
    transaction_sequence_num  
  FROM sys.dm_tran_current_snapshot;  

Aqui está o conjunto de resultados.

transaction_sequence_num  
------------------------  
57  
58  

Os resultados mostram que o XSN-57 e o XSN-58 estavam ativos no momento em que a transação snapshot XSN-59 começou. Este mesmo resultado mantém-se, mesmo após o commit ou o revertimento do XSN-57 e do XSN-58, até ao término da transação snapshot.

A mesma consulta é executada no âmbito do XSN-60.

Aqui está o conjunto de resultados.

transaction_sequence_num  
------------------------  
57  
58  
59  

A saída do XSN-60 inclui as mesmas transações que aparecem no XSN-59, mas também inclui o XSN-59, que estava ativo quando o XSN-60 começou.

Ver também

Visualizações e funções de gerenciamento dinâmico (Transact-SQL)
Visualizações e funções de gerenciamento dinâmico relacionadas à transação (Transact-SQL)