sys.dm_tran_active_transactions (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Возвращает сведения о транзакциях для экземпляра SQL Server.
Примечание.
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_tran_active_transactions. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Имя столбца | Тип данных | Description |
---|---|---|
transaction_id | bigint | Идентификатор транзакции на уровне экземпляра, а не на уровне базы данных. Он уникален во всех базах данных только в пределах экземпляра, но не уникален во всех экземплярах сервера. |
name | nvarchar(32) | Имя транзакции. Оно перезаписывается, если транзакция помечена, и помеченное имя заменяет имя транзакции. |
transaction_begin_time | datetime | Время начала транзакции. |
transaction_type | int | Тип транзакции. 1 = транзакция чтения-записи 2 = транзакция только чтения 3 = системная транзакция 4 = распределенная транзакция |
transaction_uow | uniqueidentifier | Идентификатор единицы работы транзакции (UOW) для распределенных транзакций. MS DTC использует идентификатор UOW для работы с распределенной транзакцией. |
transaction_state | int | 0 = Транзакция еще не была полностью инициализирована. 1 = Транзакция была инициализирована, но еще не началась. 2 = Транзакция активна. 3 = Транзакция закончилась. Используется для транзакций «только для чтения». 4 = Фиксирующий процесс был инициализирован на распределенной транзакции. Предназначено только для распределенных транзакций. Распределенная транзакция все еще активна, но дальнейшая обработка не может иметь место. 5 = Транзакция находится в готовом состоянии и ожидает разрешения. 6 = транзакция зафиксирована. 7 = Производится откат транзакции. 8 = транзакция была откатена. |
transaction_status | int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
transaction_status2 | int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
dtc_state | int | Применимо к: База данных SQL Azure (первоначальный выпуск через текущий выпуск). 1 = ACTIVE 2 = PREPARED 3 = COMMITTED 4 = ABORTED 5 = RECOVERED |
dtc_status | int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
dtc_isolation_level | int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
filestream_transaction_id | varbinary(128) | Применимо к: База данных SQL Azure (первоначальный выпуск через текущий выпуск). Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
pdw_node_id | int | Область применения: Azure Synapse Analytics, Analytics Platform System (PDW) Идентификатор узла, на который находится данное распределение. |
Разрешения
На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE
.
Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader##
роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE
в базе данных или членство в роли сервера ##MS_ServerStateReader##
.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Примеры
А. Использование sys.dm_tran_active_transactions с другими динамическими представлениями для поиска сведений об активных транзакциях
В следующем примере показаны все активные транзакции в системе и подробные сведения о транзакции, сеансе пользователя, отправленном приложении и запросе, запущенном и многих других.
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;
См. также
sys.dm_tran_session_transactions (Transact-SQL)
sys.dm_tran_database_transactions (Transact-SQL)
Динамические административные представления и функции (Transact-SQL)
Динамические административные представления и функции, связанные с транзакциями (Transact-SQL)