Partilhar via


sys.dm_tran_version_store_space_usage (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) SP 2 e versões posteriores Banco de Dados SQL do Azure Não há suporte. Azure Synapse Analytics Não há suporte. Analytics Platform System (PDW)

Retorna uma tabela que exibe o espaço total em tempdb usado pelos registros do repositório de versão para cada banco de dados. sys.dm_tran_version_store_space_usage é eficiente e não é caro de executar, pois não navega por registros de repositório de versão individuais e retorna o espaço de repositório de versão agregado consumido em tempdb por banco de dados.

Cada registro versionado é armazenado como dados binários, juntamente com algumas informações de rastreamento ou status. Semelhante a registros em tabelas de banco de dados, os registros de armazenamento de versão são armazenados em páginas de 8.192 bytes. Se um registro exceder 8.192 bytes, ele será dividido em dois registros diferentes.

Porque o registro com controle de versão é armazenado como binário, não há nenhum problema com ordenações diferentes de bancos de dados diferentes. Use sys.dm_tran_version_store_space_usage para monitorar e planejar o tamanho do tempdb com base no uso do espaço de armazenamento de versão dos bancos de dados em uma instância do SQL Server.

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.
reserved_page_count bigint Contagem total das páginas reservadas em tempdb para registros de repositório de versão do banco de dados.
reserved_space_kb bigint Espaço total usado em kilobytes em tempdb para registros de repositório de versão do banco de dados.

Permissões

No SQL Server, requer a permissão VIEW SERVER STATE.

Permissões do SQL Server 2022 e posteriores

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

Exemplos

A consulta a seguir pode ser usada para determinar o espaço consumido em tempdb, por repositório de versão de cada banco de dados em uma instância do SQL Server.

SELECT 
  DB_NAME(database_id) as 'Database Name',
  reserved_page_count,
  reserved_space_kb 
FROM sys.dm_tran_version_store_space_usage;  

Veja a seguir o conjunto de resultados.

Database Name            reserved_page_count reserved_space_kb  
------------------------ -------------------- -----------  
msdb                      0                    0             
AdventureWorks2022        10                   80             
AdventureWorks2022DW      0                    0             
WideWorldImporters        20                   160             

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)