从阻止会话的 oracle 中查找查询

akk*_*346 7 oracle oracle11g

我想找出任何操作被阻止的查询。从 DBA 那里,我收到了特定会话被阻止的输入,但我无法在不知道哪个查询导致问题的情况下进行进一步调查。有没有办法找出导致问题的确切查询?

小智 5

Oracle 阻塞会话很常见。请检查以下查询,它将帮助您获取详细信息。

select l1.inst_id,l1.sid, ' IS BLOCKING ', l2.sid,l1.type,l2.type,l1.lmode,l2.lmode,l2.inst_id
from gv$lock l1, gv$lock l2
where l1.block =1 and l2.request > 0and l1.id1=l2.id1
and l1.id2=l2.id2;
Run Code Online (Sandbox Code Playgroud)


Cyr*_*ANO 3

您可以使用以下查询来找出哪些会话正在阻塞以及它们做了​​什么:

select s.module,
       s.program,
       s.machine,
       s.osuser,
       sql.sql_text
from v$session s,
     v$sqlarea sql
where s.sql_id = sql.sql_id
and s.sid in (select blocking_session from v$session)
Run Code Online (Sandbox Code Playgroud)