Найти блокирующую сессию
OracleСессии и процессыКоманда
SELECT bl.sid AS blocker_sid,
bl.serial# AS blocker_serial,
bl.username AS blocker_user,
w.sid AS waiter_sid,
w.serial# AS waiter_serial,
w.username AS waiter_user,
w.seconds_in_wait AS wait_sec,
w.event
FROM v$session w
JOIN v$session bl ON bl.sid = w.blocking_session
WHERE w.blocking_session IS NOT NULL
ORDER BY w.seconds_in_wait DESC;Что делает
Выводит пары блокирующих и ожидающих сессий со временем ожидания и событием.
Когда использовать
Чтобы найти виновника при проблемах с блокировками вроде «приложение зависло / ожидание enq: TX».
Внимание
Перед завершением блокирующей сессии согласуйте с владельцем бизнес-процесса; это может быть критичная операция. Только запрос; риска нет.