Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Zwraca pojedynczy wiersz, który wyświetla informacje o stanie transakcji w bieżącej sesji.
Uwaga / Notatka
Aby wywołać to z Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_tran_current_transaction. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
Składnia
sys.dm_tran_current_transaction
Zwracana tabela
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
| transaction_id | bigint | Identyfikator transakcji aktualnego snapshota. |
| transaction_sequence_num | bigint | Numer sekwencyjny transakcji generującej wersję rekordu. |
| transaction_is_snapshot | bit | Stan izolacji migawki. Ta wartość wynosi 1, jeśli transakcja jest rozpoczęta w izolacji snapshotów. W przeciwnym razie wartość wynosi 0. |
| first_snapshot_sequence_num | bigint | Najniższy numer sekwencyjny transakcji z aktywnych transakcji w momencie wykonania snapshotu. Podczas wykonania transakcja migawkowa wykonuje migawkę wszystkich aktywnych transakcji w danym momencie. Dla transakcji niesnapshotowych ta kolumna pokazuje 0. |
| last_transaction_sequence_num | bigint | Globalny numer sekwencyjny. Ta wartość reprezentuje ostatni numer sekwencyjny transakcji wygenerowany przez system. |
| first_useful_sequence_num | bigint | Globalny numer sekwencyjny. Ta wartość reprezentuje najstarszy numer sekwencyjny transakcji transakcji, której wersje wierszy muszą być przechowywane w magazynie wersji. Wersje wierszy utworzone w wyniku wcześniejszych transakcji mogą zostać usunięte. |
| pdw_node_id | int |
Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW) Identyfikator węzła, w ramach którego znajduje się ta dystrybucja. |
Permissions
W programie SQL Server i usłudze SQL Managed Instance wymagane jest VIEW SERVER STATE uprawnienie.
W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.
Przykłady
Poniższy przykład wykorzystuje scenariusz testowy, w którym cztery równoległe transakcje, każda oznaczona numerem sekwencji transakcji (XSN), są uruchamiane w bazie danych, w której opcje ALLOW_SNAPSHOT_ISOLATION i READ_COMMITTED_SNAPSHOT są ustawione na ON. Następujące transakcje są w trakcie:
XSN-57 to operacja aktualizacji w izolacji serializowanej.
XSN-58 jest tym samym co XSN-57.
XSN-59 to operacja selekcyjna w izolacji migawkowej.
XSN-60 jest tym samym co XSN-59.
Następujące zapytanie jest wykonywane w ramach każdej transakcji.
SELECT
transaction_id
,transaction_sequence_num
,transaction_is_snapshot
,first_snapshot_sequence_num
,last_transaction_sequence_num
,first_useful_sequence_num
FROM sys.dm_tran_current_transaction;
Oto wynik dla XSN-59.
transaction_id transaction_sequence_num transaction_is_snapshot
-------------------- ------------------------ -----------------------
9387 59 1
first_snapshot_sequence_num last_transaction_sequence_num
--------------------------- -----------------------------
57 61
first_useful_sequence_num
-------------------------
57
Wynik pokazuje, że XSN-59 to transakcja migawkowa, która używa XSN-57 jako pierwszej transakcji aktywnej na początku XSN-59. Oznacza to, że XSN-59 odczytuje dane dokonane przez transakcje o numerze sekwencji niższej niż XSN-57.
Oto wynik dla XSN-57.
transaction_id transaction_sequence_num transaction_is_snapshot
-------------------- ------------------------ -----------------------
9295 57 0
first_snapshot_sequence_num last_transaction_sequence_num
--------------------------- -----------------------------
NULL 61
first_useful_sequence_num
-------------------------
57
Ponieważ XSN-57 nie jest transakcją migawkową, first_snapshot_sequence_num jest .NULL
Zobacz też
Dynamiczne widoki zarządzania i funkcje (Transact-SQL)
Dynamiczne widoki zarządzania i funkcje związane z transakcjami (Transact-SQL)