sys.dm_tran_version_store_space_usage (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) SP 2 und höher Azure SQL-Datenbank Azure Synapse Analytics Analytics Platform System (PDW)
Gibt eine Tabelle zurück, in der gesamter Speicherplatz in tempdb angezeigt wird, der von Versionsspeichereinträgen für jede Datenbank verwendet wird. sys.dm_tran_version_store_space_usage ist effizient und nicht teuer auszuführen, da sie nicht durch einzelne Versionsspeichereinträge navigiert und aggregierten Versionsspeicherplatz zurückgibt, der in tempdb pro Datenbank verbraucht wird.
Jeder versionsierte Datensatz wird zusammen mit einigen Nachverfolgungs- oder Statusinformationen als Binärdaten gespeichert. Ähnlich wie Datensätze in Datenbanktabellen werden die Versionsspeicherdatensätze in 8192 Bytes umfassenden Seiten gespeichert. Falls ein Datensatz größer ist als 8192 Bytes, wird er in zwei unterschiedliche Datensätze geteilt.
Da der Versionsdatensatz als Binärdaten gespeichert wird, treten keine Probleme mit unterschiedlichen Sortierungen aus unterschiedlichen Datenbanken auf. Verwenden Sie sys.dm_tran_version_store_space_usage , um die tempdb-Größe basierend auf der Versionsspeicherplatznutzung von Datenbanken in einer SQL Server-Instanz zu überwachen und zu planen.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
database_id | int | Datenbank-ID der Datenbank. In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers. |
reserved_page_count | bigint | Die Gesamtanzahl der in tempdb reservierten Seiten für Versionsspeicherdatensätze der Datenbank. |
reserved_space_kb | bigint | Gesamtspeicherplatz, der in Kb in tempdb für Versionsspeicherdatensätze der Datenbank verwendet wird. |
Berechtigungen
Auf SQL Server ist die VIEW SERVER STATE
-Berechtigung erforderlich.
Berechtigungen für SQL Server 2022 und höher
Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.
Beispiele
Die folgende Abfrage kann verwendet werden, um den in tempdb verbrauchten Speicherplatz anhand des Versionsspeichers jeder Datenbank in einer SQL Server-Instanz zu ermitteln.
SELECT
DB_NAME(database_id) as 'Database Name',
reserved_page_count,
reserved_space_kb
FROM sys.dm_tran_version_store_space_usage;
Hier sehen Sie das Ergebnis.
Database Name reserved_page_count reserved_space_kb
------------------------ -------------------- -----------
msdb 0 0
AdventureWorks2022 10 80
AdventureWorks2022DW 0 0
WideWorldImporters 20 160
Siehe auch
Dynamische Verwaltungssichten und Funktionen (Transact-SQL)
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit Transaktionen (Transact-SQL)