Сделать это можно следующим образом.
Текущие запросы, с их текстами
select session_id, status, wait_type, command, last_wait_type , qt.text sql_text , total_elapsed_time/1000 as [total_elapsed_time, sec], wait_time/1000 as [wait_time, sec], (total_elapsed_time - wait_time)/1000 as [work_time, sec] , percent_complete from sys.dm_exec_requests as qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt where session_id >= 50 and session_id <> @@spid -- чтоб исключить текущую сессию и этот запрос |
Самая долгая транзакция
DBCC OPENTRAN |
Oldest active transaction:
SPID (server process ID): 65
UID (user ID) : -1
Name : user_transaction
LSN : (14627553:1424:2)
Start time : Mar 12 2018 5:25:34:807PM
SID : 0x01
Подробности транзакции по SPID
DECLARE @sqltext VARBINARY(128) SELECT @sqltext = sql_handle FROM sys.sysprocesses WHERE spid = [SPID, полученный из DBCC OPENTRAN] SELECT * FROM sys.dm_exec_sql_text(@sqltext) GO |
Принудительно откатить транзакцию, можно убив процесс
KILL [SPID, полученный из DBCC OPENTRAN] |