sys.dm_tran_top_version_generators (Transact-SQL)
Gibt eine virtuelle Tabelle für die Objekte zurück, die die meisten Versionen im Versionsspeicher erzeugen. sys.dm_tran_top_version_generators gibt die obersten 256 aggregierten Datensatzlängen zurück, die nach database_id und rowset_id gruppiert werden. sys.dm_tran_top_version_generators ruft Daten ab, indem die virtuelle dm_tran_version_store-Tabelle abgefragt wird. Die Ausführung der sys.dm_tran_top_version_generators-Sicht ist ineffizient, da der Versionsspeicher abgefragt wird, der sehr groß sein kann. Die Verwendung dieser Funktion wird empfohlen, um die größten Consumer des Versionsspeichers zu suchen.
Syntax
sys.dm_tran_top_version_generators
Zurückgegebene Tabelle
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
database_id |
int |
Datenbank-ID |
rowset_id |
bigint |
Rowset-ID. |
aggregated_record_length_in_bytes |
int |
Die Summe der Datensatzlängen für jedes Paar aus database_id und rowset_id pair im Versionsspeicher. |
Berechtigungen
Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.
Hinweise
sys.dm_tran_top_version_generators muss möglicherweise viele Seiten lesen, da der gesamte Versionsspeicher gescannt wird. Daher kann durch die Ausführung von sys.dm_tran_top_version_generators die Leistung des Systems beeinträchtigt werden.
Beispiele
Im folgenden Beispiel wird ein Testszenario verwendet, bei dem vier gleichzeitige Transaktionen, die jeweils durch eine Transaktionssequenznummer (XSN) identifiziert sind, in einer Datenbank ausgeführt werden, für die die Optionen ALLOW_SNAPSHOT_ISOLATION und READ_COMMITTED_SNAPSHOT auf ON festgelegt sind. Die folgenden Transaktionen werden ausgeführt:
XSN-57 ist ein Updatevorgang auf der serialisierbaren Isolationsstufe.
XSN-58 ist mit XSN-57 identisch.
XSN-59 ist ein Select-Vorgang auf der Momentaufnahmeisolationsstufe.
XSN-60 ist mit XSN-59 identisch.
Die folgende Abfrage wird ausgeführt.
SELECT
database_id,
rowset_id,
aggregated_record_length_in_bytes
FROM sys.dm_tran_top_version_generators;
Dies ist das Resultset.
database_id rowset_id aggregated_record_length_in_bytes
----------- -------------------- ---------------------------------
9 72057594038321152 87
9 72057594038386688 33
Die Ausgabe zeigt, dass alle Versionen von database_id 9 erstellt werden und dass die Versionen aus zwei Tabellen generiert werden.
Siehe auch
Verweis
Dynamische Verwaltungssichten und Funktionen (Transact-SQL)
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit Transaktionen (Transact-SQL)