oracle执行update语句时卡住问题分析及解决办法
转载:http://www.jb51.net/article/125754.htm
这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值,需要的朋友可以了解。
问题
开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的select语句却是可以执行的。
原因和解决方法
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序中加了事务,之前debug到一半的时候我强制把工程终止了,这样就导致没有执行事务提交,所以oracle将代码中update那一条的记录锁了。可通过下面两步解决:
1.首先查询锁定记录
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
SELECT a.sid, a.serial#,a.USERNAME,ao.OBJECT_NAME FROM v$locked_object lo, dba_objects ao, v$session a WHERE ao.object_id = lo.object_id AND lo.session_id = a.sid;
2.然后删除之
ALTER system KILL session 'SID,serial#'
--例如
ALTER system KILL session '242,31855'
总结
以上就是本文关于oracle执行update语句时卡住问题分析及解决办法的全部内容,希望对大家有所帮助。
感兴趣的朋友可以参阅:ORACLE SQL语句优化技术要点解析、浅谈oracle rac和分布式数据库的区别、Oracle RMAN自动备份控制文件方法介绍等,
若有不足之处,欢迎留言指正。感谢大家对本站的支持!
出处:http://www.jb51.net/article/125754.htm
oracle执行update语句时卡住问题分析及解决办法的更多相关文章
- oracle执行update语句卡住不动
一.问题探究 开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果.但是奇怪的是执行其他的select ...
- VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误
1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenG ...
- 执行sudo命令时command not found的解决办法
问题的原因: 在编译sudo包的时候默认开启了- -with-secure-path选项. 方法1: sudo vim /etc/sudoers,并在文件内增加这么一行:Defaults secure ...
- 关于My Sql update语句不能用子查询的解决办法
在使用My Sql数据库语法操作update时,第一时间想到的是一下写法: UPDATE purchase_request_detail SET convert_to_voucher_id=, con ...
- Oracle Update 语句语法与性能分析 - 多表关联
Oracle Update 语句语法与性能分析 - 多表关联 为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create ...
- 当更新user表时,页面没有的属性,执行update语句不会更改以前的值
当更新user表时,页面没有的属性,执行update语句不会更改数据库表的值.不会用NULL值去填充
- 【转】Oracle 执行动态语句
1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一 ...
- Python MySQLdb 执行sql语句时的参数传递
使用MySQLdb连接数据库执行sql语句时,有以下几种传递参数的方法. 1.不传递参数 conn = MySQLdb.connect(user="root",passwd=&qu ...
- python中使用excutemany执行update语句,批量更新
python中使用excutemany执行update语句,批量更新 # coding:utf8 import pymysql import logging connection = pymysql. ...
随机推荐
- 20155306 白皎 0day漏洞——漏洞利用原理之GS
20155306 白皎 0day漏洞--漏洞利用原理之GS 一.GS安全编译选项的保护原理 1.1 GS的提出 在第二篇博客(栈溢出利用)中,我们可以通过覆盖函数的返回地址来进行攻击,面对这个重灾区, ...
- C指针乱谈(1)
写了几年的C指针几乎没怎么用过,因为感觉没什么用.不过在听了一位老师讲课之后,我改变的我的想法. 在此稍做总结,希望能帮到一些和我有同样想法的人,希望看完这篇文章后能改变您的想法. 首先,说说概念,指 ...
- 使用 Vue.js 2.0+ Vue-resource 模仿百度搜索框
使用 Vue.js 2.0 模仿百度搜索框 <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...
- JMeter:生成漂亮的接口/压力测试的HTML报告
JMeter生成HTML网页报告(非gui模式操作) 我们做性能测试的时候会经常使用一些性能测试工具,比如loardrunner和jmeter,我个人比较喜欢Jmeter这个工具,jmeter之前版本 ...
- HDU排序水题
1040水题; These days, I am thinking about a question, how can I get a problem as easy as A+B? It is fa ...
- Android与Unity相互调用
1. 在Unity里调用Android代码: void OnGUI(){ AndroidJavaClass jc = new AndroidJavaClass("com.some.packa ...
- JavaScript中执行环境和栈
在这篇文章中,我会深入理解JavaScript最根本的组成之一 : "执行环境(执行上下文)".文章结束后,你应该对解释器试图做什么,为什么一些函数/变量在未声明时就可以调用并且他 ...
- linux内核分析第一次实验
http://blog.sina.com.cn/s/blog_78e559950102wneg.html
- js分页实例
js分页实例 案例1 1.js_pageusers.html <!DOCTYPE html> <html> <head> <title>js_pageu ...
- [Week2 作业] 代码规范之争
这四个问题均是出自 http://goodmath.scientopia.org/2011/07/14/stuff-everyone-should-do-part-2-coding-standards ...