如何快速查出 oracle 数据库中的锁等待
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快速查出 oracle 数据库中的锁等待相关的知识,希望对你有一定的参考价值。
用如下语句:
select a.username, a.sid, a.serial#, b.id1from v$session a, v$lock b
where a.lockwait = b.kaddr;
如果存在锁等待,查询后有结果,反之则无结果:
参考技术A 被锁定的数据库表及相关的sid、serial#及spidselect object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号
from v$locked_object l , dba_objects o , v$session s , v$process p
where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;
--锁检查
select /*+ rule */
lpad('--', decode(b.block, 1, 0, 4)) || s.username user_name,
b.type,
o.owner || '.' || o.object_name object_name,
s.sid,
s.serial#,
decode(b.request, 0, 'BLOCKED', 'Waiting') status,
t.SQL_TEXT
from dba_objects o,
v$session s,
v$lock v,
v$lock b,
v$sqltext_with_newlines t
where v.id1 = o.object_id
and v.sid = s.sid
and v.sid = b.sid
and (b.block = 1 or b.request > 0)
and v.type = 'TM'
and t.ADDRESS = s.PREV_SQL_ADDR
order by status,s.sid;本回答被提问者和网友采纳
以上是关于如何快速查出 oracle 数据库中的锁等待的主要内容,如果未能解决你的问题,请参考以下文章
如何查出在oracle 表中的某个字段中符合以下要求:包括除汉字、数字、字母、中画线、括弧外的其它字符