Partilhar via


sys.dm_tran_top_version_generators (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

Retorna uma tabela virtual para os objetos que estão produzindo a maioria das versões no repositório de versão. sys.dm_tran_top_version_generators retorna os 256 principais comprimentos de registro agregados agrupados por database_id e rowset_id. sys.dm_tran_top_version_generators recupera dados consultando a tabela virtual dm_tran_version_store. sys.dm_tran_top_version_generators é uma exibição ineficiente a ser executada porque essa exibição consulta o repositório de versão e o repositório de versão pode ser muito grande. Recomendados que você use essa função para localizar os usuários que mais utilizam o armazenamento de versão.

Observação

Para chamar isso do Azure Synapse Analytics ou do PDW (Analytics Platform System), use o nome sys.dm_pdw_nodes_tran_top_version_generators. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Sintaxe

  
sys.dm_tran_top_version_generators  

Tabela retornada

Nome da coluna Tipo de dados Descrição
database_id int ID do banco de dados.

No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou em um pool elástico, mas não em um servidor lógico.
rowset_id bigint ID do conjunto de linhas.
aggregated_record_length_in_bytes int Soma dos comprimentos de registro para cada par de database_id e rowset_id no repositório de versões.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que essa distribuição está ativada.

Permissões

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

Nos objetivos de serviço do Banco de Dados SQL Básico, S0 e S1 e para bancos de dados em pools elásticos, é necessário ter a conta do administrador do servidor, a conta do administrador do Microsoft Entra ou a associação à ##MS_ServerStateReader## função de servidor. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader## são necessárias.

Permissões do SQL Server 2022 e posteriores

É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Comentários

Como sys.dm_tran_top_version_generators pode ter que ler muitas páginas enquanto verifica todo o armazenamento de versão, a execução de sys.dm_tran_top_version_generators pode interferir no desempenho do sistema.

Exemplos

O exemplo a seguir usa um cenário de teste no qual quatro transações simultâneas, cada uma identificada por um XSN (número de sequência de transação), estão sendo executadas em um banco de dados no qual as opções ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT estão definidas como ON. As seguintes transações estão sendo executadas:

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

  • XSN-58 é o mesmo que XSN-57.

  • XSN-59 é uma operação de seleção em isolamento de instantâneo.

  • XSN-60 é o mesmo que XSN-59.

A consulta a seguir é executada.

SELECT  
    database_id,  
    rowset_id,  
    aggregated_record_length_in_bytes  
  FROM sys.dm_tran_top_version_generators;  

Veja a seguir o conjunto de resultados.

database_id rowset_id            aggregated_record_length_in_bytes  
----------- -------------------- ---------------------------------  
9           72057594038321152    87  
9           72057594038386688    33  

A saída mostra que todas as versões são criadas e que as versões são geradas a database_id``9 partir de duas tabelas.

Confira também

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