Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve uma tabela virtual para o sequence_number de transações que estão ativas quando cada transação snapshot começa. A informação que é devolvida por esta vista pode ajudá-lo a fazer o seguinte:
Encontre o número de transações snapshot atualmente ativas.
Identifique modificações de dados que sejam ignoradas por uma determinada transação instantânea. Para uma transação que está ativa quando uma transação snapshot começa, todas as modificações de dados dessa transação, mesmo depois de essa transação ser confirmada, são ignoradas pela transação snapshot.
Por exemplo, considere a seguinte saída 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 transaction_sequence_num coluna identifica o número da sequência de transações (XSN) das transações snapshot atuais. A saída mostra dois: 59 e 60. A snapshot_sequence_num coluna identifica o número de sequência da transação das transações que estão ativas quando cada transação snapshot começa.
A saída mostra que a transação instantânea XSN-59 começa enquanto duas transações ativas, XSN-57 e XSN-58, estão a correr. Se o XSN-57 ou o XSN-58 fizer modificações de dados, o XSN-59 ignora as alterações e utiliza versionamento de linhas para manter uma visão transacionalmente consistente da base de dados.
A transação snapshot XSN-60 ignora modificações de dados feitas pelo XSN-57 e XSN-58 e também pelo XSN 59.
Tabela retornada
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| transaction_sequence_num | bigint | Número de sequência de transação (XSN) de uma transação instantânea. |
| snapshot_id | int | O ID do snapshot para cada Transact-SQL instrução começou sob read-commit usando versionamento de linhas. Este valor é usado para gerar uma visão transacionalmente consistente da base de dados que suporta cada consulta que está a ser executada sob read-committed, usando versionamento de linhas. |
| snapshot_sequence_num | bigint | Número de sequência de transação de uma transação que estava ativa quando a transação snapshot começou. |
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.
Observações
Quando uma transação de snapshot começa, o Motor de Base de Dados regista todas as transações que estão ativas nesse momento. sys.dm_tran_transactions_snapshot reporta esta informação para todas as transações snapshot atualmente ativas.
Cada transação é identificada por um número de sequência de transação que é atribuído quando a transação começa. As transações começam no momento em que uma instrução INICIAR TRANSAÇÃO ou INICIAR TRABALHO é executada. No entanto, o Motor de Base de Dados atribui o número da sequência da transação com a execução da primeira instrução Transact-SQL que acede aos dados após a instrução BEGIN TRANSACTION ou BEGIN WORK. Os números de sequência das transações são incrementados em um.
Ver também
Visões e funções de gerenciamento dinâmico (Transact-SQL)
Visualizações e funções de gerenciamento dinâmico relacionadas a transações (Transact-SQL)