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 längsten 256 aggregierten Datensatzlängen gruppiert nach database_id und rowset_id zurück. sys.dm_tran_top_version_generators ruft Daten durch Abfragen der virtuellen Tabelle dm_tran_version_store ab. 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 Aktualisierungsvorgang auf der serialisierbaren Isolationsstufe.
XSN-58 ist mit XSN-57 identisch.
XSN-59 ist ein Select-Vorgang auf der Snapshotisolationsstufe.
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_id9 erstellt werden und dass die Versionen aus zwei Tabellen generiert werden.