Oracle查看表锁和解除锁

本文详细解析了在Oracle数据库中,当两个事务互相等待对方完成而导致的死锁现象。通过展示具体的SQL语句,说明如何查找处于死锁状态的操作及用户,并提供了解决方案,即如何终止造成死锁的会话。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习做项目,遇到oracle update或insert时卡住
情况是这样的,有句insert sql执行了但事务还没提交,后面另外一个事务又重复执行调用了这句sql,就直接卡住,前面的事务等待后面的事务完成提交,而后面事务的insert又需要等待前面的sql提交,所有直接卡住
下面这句sql可直接查看到操作的用户,sid,serial,时间,名字和卡住的sql语句
然后 kill掉即可

--用户|sid|serial|锁定时间|对象名称|锁模|sql语句|几个时间
select b.username,b.sid,b.serial# serial,c.object_name,a.locked_mode,d.sql_text
  ,d.first_load_time,d.last_load_time
  ,b.prev_exec_start
from v$locked_object a
  left join v$session b on a.session_id = b.sid
  left join dba_objects c on c.object_id = a.object_id
  left join v$sql d on b.sql_hash_value = d.hash_value
order by b.logon_time;

alter system kill session'sid,serial';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值