Oracle查看表锁和解除锁

版权声明:这里只是小白学习记录笔记资源的位置,若有问题请大佬们指点(●'◡'●) https://blog.csdn.net/weixin_42448414/article/details/84985740

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

--用户|sid|serial|锁定时间|对象名称|锁模|sql语句
select b.username,b.sid,b.serial#,b.logon_time,c.object_name,a.locked_mode,d.sql_text
  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';

猜你喜欢

转载自blog.csdn.net/weixin_42448414/article/details/84985740