Condividi tramite


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 Non supportato. Azure Synapse Analytics Non supportato. 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)