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)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Widok sys.dm_tran_active_transactions dynamicznego zarządzania zwraca informacje o transakcjach dla danego przypadku.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
transaction_id |
bigint | Identyfikacja transakcji na poziomie instancji, a nie bazy danych. Jest unikalny tylko we wszystkich bazach danych w jednej instancji, ale nie jest unikalny dla wszystkich instancji serwera. |
name |
nvarchar(32) | Nazwa transakcji. Jest to nadpisywane, jeśli transakcja jest oznaczona, a oznaczona nazwa zastępuje nazwę transakcji. |
transaction_begin_time |
datetime | Czas, w którym transakcja się rozpoczęła. |
transaction_type |
int | Rodzaj transakcji. 1 = Transakcja odczytu/zapisu 2 = Transakcja tylko do odczytu 3 = Transakcja systemowa 4 = Transakcja rozproszona |
transaction_uow |
uniqueidentifier | Identyfikator jednostki pracy transakcji (UOW) dla transakcji rozproszonych. Koordynator transakcji rozproszonych Microsoft (MS DTC) wykorzystuje identyfikator UOW do pracy z transakcją rozproszoną. |
transaction_state |
int | 0 = Transakcja nie została jeszcze całkowicie zainicjalizowana. 1 = Transakcja została zainicjalizowana, ale nie została rozpoczęta. 2 = Transakcja jest aktywna. 3 = Transakcja została zakończona. Używane do transakcji tylko do odczytu. 4 = Proces zatwierdzania został zainicjowany na transakcji rozproszonej. Tylko dla transakcji rozproszonych. Rozproszona transakcja jest nadal aktywna, ale dalsze przetwarzanie nie może być możliwe. 5 = Transakcja jest w stanie przygotowanym i oczekuje na rozwiązanie. 6 = Transakcja została zatwierdzona. 7 = Transakcja jest cofana do tyłu. 8 = Transakcja została cofnięta. |
transaction_status |
int | Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana. |
transaction_status2 |
int | Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana. |
dtc_state |
int |
Dotyczy: Azure SQL Database. 1 = AKTYWNE 2 = PRZYGOTOWANE 3 = ZOBOWIĄZANIE 4 = PRZERWANE 5 = ODZYSKANE |
dtc_status |
int | Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana. |
dtc_isolation_level |
int | Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana. |
filestream_transaction_id |
varbinary(128) |
Dotyczy: Azure SQL Database. Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana. |
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 Microsoft Fabric, do zapytań sys.dm_tran_active_transactionswymagane jest członkostwo w roliWspółtwórcy lub bardziej uprzywilejowanej roli .
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.
Uwagi
Aby nazwać ten dynamiczny widok zarządzania z Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_tran_active_transactions Ta składnia nie jest obsługiwana przez serwerless pool SQL w Azure Synapse Analytics.
Przykłady
A. Korzystaj z sys.dm_tran_active_transactions z innymi DMV, aby znaleźć informacje o aktywnych transakcjach
Poniższy przykład pokazuje aktywne transakcje w systemie. Zapytanie dostarcza szczegółowych informacji o transakcji, sesji użytkownika, aplikacji, która ją wysłała, zapytaniu ją rozpoczęło i wielu innych.
SELECT
GETDATE() as now,
DATEDIFF(SECOND, transaction_begin_time, GETDATE()) as tran_elapsed_time_seconds,
st.session_id,
txt.text,
*
FROM
sys.dm_tran_active_transactions at
INNER JOIN sys.dm_tran_session_transactions st ON st.transaction_id = at.transaction_id
LEFT OUTER JOIN sys.dm_exec_sessions sess ON st.session_id = sess.session_id
LEFT OUTER JOIN sys.dm_exec_connections conn ON conn.session_id = sess.session_id
OUTER APPLY sys.dm_exec_sql_text(conn.most_recent_sql_handle) AS txt
ORDER BY
tran_elapsed_time_seconds DESC;