sys.dm_tran_version_store_space_usage (Transact-SQL)
Aplica-se a: SQL Server 2016 (13.x) SP 2 e posterior Banco de Dados SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
Retorna uma tabela que exibe o espaço total em tempdb
usado pelos registros de armazenamento 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 armazenamento de versão individuais e retorna o espaço de armazenamento 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 aos registros em tabelas de banco de dados, os registros de armazenamento de versão são armazenados em páginas de 8192 bytes. Se um registro exceder 8.192 bytes, o registro será dividido em dois registros diferentes.
Como o registro versionado é armazenado como binário, não há problemas com agrupamentos diferentes de bancos de dados diferentes. Use sys.dm_tran_version_store_space_usage para monitorar e planejar tempdb
tamanho com base no uso de espaço de armazenamento de versão de 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 do banco de dados. No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou 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 armazenamento de versão do banco de dados. |
reserved_space_kb | bigint | Espaço total usado em kilobytes em tempdb para registros de armazenamento de versão do banco de dados. |
Permissões
No SQL Server, requer VIEW SERVER STATE
permissão.
Permissões para SQL Server 2022 e posterior
Requer 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 armazenamento 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;
Aqui está o conjunto de resultados.
Database Name reserved_page_count reserved_space_kb
------------------------ -------------------- -----------
msdb 0 0
AdventureWorks2022 10 80
AdventureWorks2022DW 0 0
WideWorldImporters 20 160