Compartilhar via


sys.dm_tran_top_version_generators (Transact-SQL)

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 maiores 256 tamanhos de registros agregados que são agrupados por database_id e rowset_id. sys.dm_tran_top_version_generators recupera dados por meio de consulta da tabela virtual dm_tran_version_store tabela virtual. sys.dm_tran_top_version_generators é uma exibição ineficiente para execução, porque essa exibição consulta todo 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.

Aplica-se a: SQL Server (do SQL Server 2008 à versão atual).

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.

rowset_id

bigint

ID do conjunto de linhas.

aggregated_record_length_in_bytes

int

Soma os tamanhos de registro para cada database_id e rowset_id pair no armazenamento de versão.

Permissões

Requer a permissão VIEW SERVER STATE no servidor.

Comentários

Como o sys.dm_tran_top_version_generators poderia ter que ler muitas páginas enquanto examina o armazenamento inteiro de versão, a execução do sys.dm_tran_top_version_generators pode interferir com desempenho de 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;

Aqui está 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 através de database_id9 e que as versões são geradas a partir de duas tabelas.

Consulte também

Referência

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)