Share via


sys.dm_tran_transactions_snapshot (Transact-SQL)

Retorna uma tabela virtual para o sequence_number, ou número de seqüência, de transações que está ativo quando cada transação de instantâneo se inicia. A informações retornadas por esta exibição podem lhe ser úteis para fazer o seguinte:

  • Encontrar o número de transações de instantâneo ativas no momento.

  • Identificar modificações de dados ignoradas por uma transação de instantâneo particular. As modificações de dados de uma transação que está ativa quando um instantâneo de transação se inicia serão ignoradas por ele, mesmo depois de a transação ser confirmada.

Por exemplo, considere a saída a seguir de 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

A coluna transaction_sequence_num identifica o número de seqüência de transação (XSN) das transações de instantâneo atuais. A saída mostra dois: 59 e 60. A coluna snapshot_sequence_num identifica o número de seqüência de transação das transações ativas quando cada transação de instantâneo se inicia.

A saída mostra que transação de instantâneo XSN-59 se inicia enquanto duas transações ativas, XSN-57 e XSN-58, estiverem em execução. Se XSN-57 ou XSN-58 fizerem modificações de dados, XSN-59 ignorará as mudanças e usará a versão de linha para manter uma exibição consistente transacional do banco de dados.

A transação de instantâneo XSN-60 ignora modificações de dados feitas pelo XSN-57 e XSN-58 e, igualmente, pelo XSN 59.

Sintaxe

dm_tran_transactions_snapshot

Tabela retornada

Nome da coluna

Tipo de dados

Descrição

transaction_sequence_num

bigint

Número de seqüência de transação (XSN) de um instantâneo de transação.

snapshot_id

int

ID de instantâneo para cada instrução Transact-SQL iniciada com leitura confirmada, usando versão de linha. Este valor é usado para gerar uma exibição consistente transacional do banco de dados que oferece suporte para cada consulta sendo executada com leitura confirmada, usando versão de linha.

snapshot_sequence_num

bigint

Número de seqüência de transação de uma transação que estava ativa quando o instantâneo de transação começou.

Permissões

Requer a permissão VIEW SERVER STATE no servidor.

Comentários

Quando uma transação de instantâneo começa, o Mecanismo de Banco de Dados registra todas as transações ativas naquele momento. sys.dm_tran_transactions_snapshot reporta essas informações a todas as transações de instantâneo ativas na ocasião.

Cada transação é identificada por um número de seqüência de transação atribuído quando no início da transação. As transações começam quando uma instrução BEGIN TRANSACTION ou BEGIN WORK é executada. No entanto, o Mecanismo de Banco de Dados nomeia o número de seqüência de transação com a execução da primeira instrução Transact-SQL a acessar dados, depois da instrução BEGIN TRANSACTION ou BEGIN WORK. Os números de seqüência de transação são incrementados de um.