我想找出任何操作被阻止的查询。从 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)
您可以使用以下查询来找出哪些会话正在阻塞以及它们做了什么:
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)
| 归档时间: |
|
| 查看次数: |
32625 次 |
| 最近记录: |