首页 > 代码库 > 解决锁表问题
解决锁表问题
在数据共享的时代,当多个用户同时操作同一资源是,很容易发生锁表现象。同一时刻,多个用户操作同一资源时,如果不及时commit,很容易发生锁表现象。
解决办法:
1)通过sys用户连接pl/sql development查询:
SQL>select t2.username, t2.sid, t2.serial#, t2.logon_time
from v$locked_object t1, v$session t2
where t1.session_id = t2.sid
order by t2.logon_time;
结果如下:
2)根据上面的结果SID执行下面的语句查找具体的锁表语句:
SQL>select sql_text
from v$session a, v$sqltext_with_newlines b
where decode(a.sql_hash_value, 0, prev_hash_value, sql_hash_value) =
b.hash_value
and a.sid = &sid
order by piece;
结果如下:该结果即是产生锁表的语句,因为其忘记提交而产生。
3)记录2)中的语句,并且杀死会话,如果会话有必要,在执行一次即可。
SQL>alter system kill session ‘125,7‘;
解决锁表问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。