sys.dm_tran_version_store_space_usage (Transact-SQL)
Si applica a: SQL Server 2016 (13.x) SP 2 e versioni successive database SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Restituisce una tabella che visualizza lo spazio totale in tempdb utilizzato dai record dell'archivio delle versioni per ogni database. sys.dm_tran_version_store_space_usage è efficiente e non costoso da eseguire, perché non passa attraverso singoli record dell'archivio versioni e restituisce lo spazio di archiviazione delle versioni aggregato utilizzato in tempdb per ogni database.
Ogni record con controllo delle versioni viene archiviato come dati binari, insieme ad alcune informazioni di rilevamento o stato. Analogamente ai record nelle tabelle di database, i record inclusi nell'archivio delle versioni vengono archiviati in pagine da 8192 byte. In caso di dimensioni superiori a 8192 byte, il record verrà suddiviso in due record distinti.
Poiché il record con versione viene archiviato come dato binario, non si verificheranno problemi in presenza di diverse regole di confronto di database diversi. Usare sys.dm_tran_version_store_space_usage per monitorare e pianificare le dimensioni di tempdb in base all'utilizzo dello spazio di archiviazione delle versioni dei database in un'istanza di SQL Server.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
database_id | int | ID database del database. In database SQL di Azure i valori sono univoci all'interno di un database singolo o di un pool elastico, ma non all'interno di un server logico. |
reserved_page_count | bigint | Numero totale delle pagine riservate in tempdb per i record dell'archivio delle versioni del database. |
reserved_space_kb | bigint | Spazio totale usato in kilobyte in tempdb per i record dell'archivio delle versioni del database. |
Autorizzazioni
In SQL Server è richiesta VIEW SERVER STATE
l'autorizzazione.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.
Esempi
La query seguente può essere usata per determinare lo spazio utilizzato in tempdb, in base all'archivio delle versioni di ogni database in un'istanza di SQL Server.
SELECT
DB_NAME(database_id) as 'Database Name',
reserved_page_count,
reserved_space_kb
FROM sys.dm_tran_version_store_space_usage;
Il set di risultati è il seguente.
Database Name reserved_page_count reserved_space_kb
------------------------ -------------------- -----------
msdb 0 0
AdventureWorks2022 10 80
AdventureWorks2022DW 0 0
WideWorldImporters 20 160
Vedi anche
Funzioni a gestione dinamica e DMV (Transact-SQL)
Funzioni e viste DMV relative alle transazioni (Transact-SQL)