oracle执行update语句时卡住问题分析及解决办法
问题
开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的select语句却是可以执行的。
原因和解决方法
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序中加了事务,之前debug到一半的时候我强制把工程终止了,这样就导致没有执行事务提交,所以oracle将代码中update那一条的记录锁了。可通过下面两步解决:
1.首先查询锁定记录
SELECTs.sid,s.serial#FROMv$locked_objectlo,dba_objectsao,v$sessionsWHEREao.object_id=lo.object_idANDlo.session_id=s.sid;
2.然后删除之
ALTERsystemKILLsession'SID,serial#'
总结
以上就是本文关于oracle执行update语句时卡住问题分析及解决办法的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:ORACLESQL语句优化技术要点解析、浅谈oraclerac和分布式数据库的区别、OracleRMAN自动备份控制文件方法介绍等,若有不足之处,欢迎留言指正。感谢大家对本站的支持!
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短