Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Egy SQL Server példányban ez a dinamikus menedzsment nézet virtuális táblát ad vissza minden olyan aktív tranzakcióhoz, amely sorverziókat generál vagy potenciálisan hozzáfér. A tranzakciók az alábbi feltételek egyikére vagy többére vonatkoznak:
Amikor az adatbázis egyik vagy mindkettő ALLOW_SNAPSHOT_ISOLATION és READ_COMMITTED_SNAPSHOT adatbázis opciók ON-ra vannak állítva:
Minden tranzakcióhoz egy sor van, amely snapshot izolációs szinten, vagy olvasási elkülönítési szint alatt fut, és sorverziót használ.
Minden tranzakcióhoz egy sor van, amely miatt a jelenlegi adatbázisban sorverzió jön létre. Például a tranzakció egy sorverziót generál azáltal, hogy frissíti vagy törli a sort a jelenlegi adatbázisban.
Amikor egy trigger aktiválódik, van egy sor a tranzakcióhoz, amelyben a trigger végrehajtódik.
Amikor egy online indexelési eljárás fut, van egy sor annak a tranzakciónak, amely létrehozza az indexet.
Amikor a Több Aktív Eredménykészlet (MARS) ülés engedélyezve van, minden tranzakcióhoz egy sor áll, amely a sorverziókhoz hozzáfér.
Ez a dinamikus menedzsment nézet nem tartalmazza a rendszertranzakciókat.
Megjegyzés:
Az Azure Synapse Analytics vagy Analytics Platform System (PDW) néven használjuk a sys.dm_pdw_nodes_tran_active_snapshot_database_transactions nevet. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
Szemantika
sys.dm_tran_active_snapshot_database_transactions
Visszaadott tábla
| Oszlop név | Adattípus | Description |
|---|---|---|
| transaction_id | bigint | Egyedi azonosító szám a tranzakcióhoz. A tranzakcióazonosítót elsősorban a tranzakció azonosítására használják a zárolási műveletekben. |
| transaction_sequence_num | bigint | Tranzakció sorszám. Ez egy egyedi sorozatszám, amelyet egy tranzakció indításkor rendelnek hozzá. Azok a tranzakciók, amelyek nem generálnak verziórekordokat és nem használnak snapshot szkennelést, nem kapnak tranzakciós sorozatszámot. |
| commit_sequence_num | bigint | Sorszám, amely jelzi, mikor fejezi be a tranzakció (commit vagy megáll). Aktív tranzakciók esetén az érték NULL. |
| is_snapshot | int | 0 = Nem egy pillanatkép izolációs tranzakció. 1 = egy pillanatkép izolációs tranzakció. |
| session_id | int | A tranzakció elindító ülésének azonosítója. |
| first_snapshot_sequence_num | bigint | A legalacsonyabb tranzakciósorozat száma, amelyek aktív voltak a pillanatkép készítésekor történtek. Végrehajtáskor egy snapshot tranzakció az adott időben az összes aktív tranzakció pillanatképét veszi. Nem snapshot tranzakciók esetén ez az oszlop 0-t mutat. |
| max_version_chain_traversed | int | A verziólánc maximális hossza, amelyet áthaladunk a tranzakciósan konzisztens verzió megtalálásához. |
| average_version_chain_traversed | valódi | Átlagosan száma a verzióláncokban átívelt sorverzióknak. |
| elapsed_time_seconds | bigint | Eltelt idő, mióta a tranzakció megkapta a tranzakció sorszámát. |
| pdw_node_id | int |
A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW) Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található. |
Permissions
Az SQL Serveren és a felügyelt SQL-példányon VIEW SERVER STATE engedély szükséges.
Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.
Engedélyek az SQL Server 2022-hez és újabb verziókhoz
A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.
Megjegyzések
sys.dm_tran_active_snapshot_database_transactions olyan tranzakciókat jelent, amelyekhez tranzakciósorozat szám (XSN) tartozik. Az XSN-t akkor rendelik hozzá, amikor a tranzakció először eléri a verzió tárolót. Egy olyan adatbázisban, amely sorverziózással engedélyezett snapshot izolációra vagy olvasási elszigetelésre, a példák azt mutatják, amikor egy XSN rendelnek hozzá egy tranzakcióhoz:
Ha egy tranzakció sorozatosítható izolációs szinten fut, akkor XSN-t rendelnek hozzá, amikor a tranzakció először hajt végre egy utasítást, például egy UPDATE műveletet, amely sorverzió létrehozását eredményezi.
Ha egy tranzakció snapshot izolációban fut, akkor XSN kerül hozzá, amikor bármilyen adatkezelő nyelv (DML) utasítás, beleértve egy SELECT műveletet is végrehajtunk.
A tranzakciósorozat számai sorozatban növelik minden egyes tranzakció esetén, amelyet az adatbázis motorjának egy példányában indítanak el.
Példák
A következő példa egy teszthelyzetet használ, amelyben négy egyidejű tranzakció, mindegyiket egy tranzakciósorozat számmal (XSN) azonosítva, egy olyan adatbázisban fut, amelynek ALLOW_SNAPSHOT_ISOLATION és READ_COMMITTED_SNAPSHOT opciói ON-ra vannak állítva. A következő tranzakciók zajlanak:
Az XSN-57 egy frissítő művelet, amely sorozatos izolációval rendelkezik.
Az XSN-58 ugyanaz, mint az XSN-57.
Az XSN-59 egy kiválasztott művelet snapshot izoláció alatt
Az XSN-60 ugyanaz, mint az XSN-59.
A következő lekérdezést hajtják végre.
SELECT
transaction_id,
transaction_sequence_num,
commit_sequence_num,
is_snapshot session_id,
first_snapshot_sequence_num,
max_version_chain_traversed,
average_version_chain_traversed,
elapsed_time_seconds
FROM sys.dm_tran_active_snapshot_database_transactions;
Itt van az eredmények összessége.
transaction_id transaction_sequence_num commit_sequence_num
-------------- ------------------------ -------------------
9295 57 NULL
9324 58 NULL
9387 59 NULL
9400 60 NULL
is_snapshot session_id first_snapshot_sequence_num
----------- ----------- ---------------------------
0 54 0
0 53 0
1 52 57
1 51 57
max_version_chain_traversed average_version_chain_traversed
--------------------------- -------------------------------
0 0
0 0
1 1
1 1
elapsed_time_seconds
--------------------
419
397
359
333
Az alábbi információk értékelik az sys.dm_tran_active_snapshot_database_transactions eredményeit:
XSN-57: Mivel ez a tranzakció nem fut snapshot izoláció alatt, az
is_snapshotérték ésfirst_snapshot_sequence_num.0transaction_sequence_numazt mutatja, hogy tranzakció sorozatszámot rendeltek ehhez a tranzakcióhoz, mivel az egyik vagy mindkét ALLOW_SNAPSHOT_ISOLATION vagy READ_COMMITTED_SNAPSHOT adatbázis opció BEKAPCSOLT.XSN-58: Ez a tranzakció nem fut snapshot izoláció alatt, és ugyanaz az információ érvényes az XSN-57-re is.
XSN-59: Ez az első aktív tranzakció, amely snapshot izoláció alatt fut. Ez a tranzakció olyan adatokat olvas, amelyeket az XSN-57 előtt végeztek el, ahogy azt az jelzi.
first_snapshot_sequence_numA tranzakció kimenete azt is mutatja, hogy a maximális verziólánc, amelyet egy sorban áthaladnak, és1áthaladt minden elérhető sorhoz tartozó verzió átlagaként1. Ez azt jelenti, hogy az XSN-57, XSN-58 és XSN-60 tranzakciók nem módosították a sorokat és nem kötelezték el magukat.XSN-60: Ez a második tranzakció, amely snapshot izoláció alatt fut. A kimenet ugyanazt az információt mutatja, mint az XSN-59.
Lásd még:
TRANZAKCIÓELKÜLÖNÍTÉSI SZINT (Transact-SQL) beállítása
dinamikus felügyeleti nézetek és függvények (Transact-SQL)
Tranzakcióval kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)