Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к: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, Analytics Platform System (PDW) Идентификатор узла, на который находится данное распределение. |
Разрешения
На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE.
В Microsoft Fabric для запроса sys.dm_tran_active_transactionsтребуется членство в роли Contributor workspace или более привилегированной роли.
Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader##роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Замечания
Чтобы назвать этот динамический вид управления из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_tran_active_transactions : Этот синтаксис не поддерживается серверным SQL-пулом в Azure Synapse Analytics.
Примеры
А. Используйте 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;