Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Динамический вид управления возвращает sys.dm_tran_active_transactions информацию о транзакциях для экземпляра.
| Имя столбца | Тип данных | Description |
|---|---|---|
transaction_id |
bigint | Идентификатор транзакции на уровне экземпляра, а не на уровне базы данных. Он уникален во всех базах данных только в пределах экземпляра, но не уникален во всех экземплярах сервера. |
name |
nvarchar(32) | Имя транзакции. Оно перезаписывается, если транзакция помечена, и помеченное имя заменяет имя транзакции. |
transaction_begin_time |
datetime | Время начала транзакции. |
transaction_type |
int | Тип транзакции. 1 = транзакция чтения-записи 2 = транзакция только чтения 3 = системная транзакция 4 = распределенная транзакция |
transaction_uow |
uniqueidentifier | Идентификатор единицы работы транзакции (UOW) для распределенных транзакций. Распределённый координатор транзакций Microsoft (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 = АКТИВНЫЙ 2 = ГОТОВО 3 = ОБЯЗАТЕЛЬСТВО 4 = ОТМЕНЕНО 5 = ВОССТАНОВЛЕНО |
dtc_status |
int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
dtc_isolation_level |
int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
filestream_transaction_id |
varbinary(128) |
Область применения: База данных SQL Azure. Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
pdw_node_id |
int |
применимо к: Azure Synapse Analytics, система платформы аналитики (PDW) Идентификатор узла, на который находится это распределение. |
Permissions
Для SQL Server и Управляемого экземпляра SQL требуется разрешение VIEW SERVER STATE.
В Microsoft Fabric для запроса требуется членство в роли Contributor workspace или более привилегированной роли.sys.dm_tran_active_transactions
В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.
Разрешения для SQL Server 2022 и более поздних версий
Требуется VIEW разрешение на состояние производительности сервера на сервере.
Замечания
Чтобы назвать этот динамический вид управления из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_tran_active_transactions : Этот синтаксис не поддерживается серверным SQL-пулом в Azure Synapse Analytics.
Examples
А. Используйте sys.dm_tran_active_transactions вместе с другими DMV, чтобы найти информацию об активных транзакциях
Следующий пример показывает любые активные транзакции в системе. Запрос содержит подробную информацию о транзакции, пользовательской сессии, приложении, которое было отправлено, и запросе, который её инициировал, а также о многих других.
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;