update一直执行,没有反应

来源:互联网 发布:西安军工 知乎 编辑:程序博客网 时间:2024/04/30 05:49

简单的sql语句执行很久没反应
今天在update一条数据的时候,一条最简单的sql如下:

update t_role r   set r.status = 0 where r.id = 'xxxxxxxx'

就这么一条sql死活就“正在执行”。。。。。
还是找度娘找到解决方案,原来是表被锁死了。
解决方案如下:
1. 查看锁表进程SQL语句

select sess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_modefrom v$locked_object lo,dba_objects ao,v$session sesswhere ao.object_id = lo.object_id and lo.session_id = sess.sid;

杀掉锁表进程:
如有记录则表示有lock,记录下SID和serial# ,将记录的SID替换下面的?号,即可解除LOCK
有几个写几个,用逗号间隔即可

alter system kill session ‘?,?,?’;
阅读全文
0 0
原创粉丝点击