Delen via


sys.dm_tran_version_store_space_usage (Transact-SQL)

Van toepassing op: SQL Server 2016 (13.x) SP 2 en hoger Azure SQL Database Niet ondersteund. Azure Synapse Analytics Niet ondersteund. Analytics Platform System (PDW)

Retourneert een tabel die de totale ruimte weergeeft in tempdb die worden gebruikt door versieopslagrecords voor elke database. sys.dm_tran_version_store_space_usage efficiënt en niet duur is om uit te voeren, omdat deze niet door afzonderlijke versiearchiefrecords navigeert en geaggregeerde versieopslagruimte retourneert die in tempdb per database wordt verbruikt.

Elke versierecord wordt opgeslagen als binaire gegevens, samen met enkele tracerings- of statusgegevens. Net als bij records in databasetabellen worden versieopslagrecords opgeslagen op 8192-bytepagina's. Als een record groter is dan 8.192 bytes, wordt de record verdeeld over twee verschillende records.

Omdat de versie van de record als binair wordt opgeslagen, zijn er geen problemen met verschillende sorteringen van verschillende databases. Gebruik sys.dm_tran_version_store_space_usage om de grootte van tempdb te bewaken en te plannen op basis van het gebruik van de ruimte voor de versieopslag van databases in een SQL Server-exemplaar.

Kolomnaam Gegevenstype Beschrijving
database_id Database-id van de database.

In Azure SQL Database zijn de waarden uniek binnen één database of een elastische pool, maar niet binnen een logische server.
reserved_page_count grote Het totale aantal pagina's dat is gereserveerd in tempdb voor versieopslagrecords van de database.
reserved_space_kb grote Totale ruimte die wordt gebruikt in kilobytes in tempdb voor versieopslagrecords van de database.

Machtigingen

Voor SQL Server is VIEW SERVER STATE machtiging vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Voorbeelden

De volgende query kan worden gebruikt om de ruimte te bepalen die in tempdbwordt verbruikt, per versiearchief van elke database in een SQL Server-exemplaar.

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

Dit is de resultatenset.

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