Oracle——关于for update的锁表与解锁
来源:互联网 发布:怎样增加淘宝访客量 编辑:程序博客网 时间:2024/06/05 04:58
前传:
上周工作时,犯了件蠢事,select数据的时候加入了for update却忘记了加条件,测试环境的数据过多,查询时间太长,于是就把这个进程给kill了,结果造成了锁表。
结论:
for update语句一旦运行就会把表锁住,防止他人和你一同更改,第二个连接进来再进行select 。。。for update会造成阻塞,即第二个连接无法查询出数据。
在前传中,我将进程kill了,但是没有提交该事物,所以oracle认为,这个连接一直在修改数据,于是没有办法再执行for update语句。
但是for update锁住的只有符合条件的行,不符合该条件的行还是可以继续修改,比如:insert。
周末在家想重现这个事件,又不可能造大量的数据来造成当时查询时间过长的状况,于是,我想不commit直接关闭PL/SQL,但是无论如何都重现不了工作中的状况。
后来发现,PL/SQL有设定,当我们注销或者关闭PL/SQL的时候,默认提交事物,选项中只有“提交”、“回滚”和“询问”三个选项,所以当我们直接关闭PL/SQL的时候是很安全的。
阅读全文
0 0
- Oracle——关于for update的锁表与解锁
- oracle 锁表、解锁的语句 for update 死锁处理
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- Oracle的锁表与解锁
- docker-maven-plugin 完全免Dockerfile 文件
- sql 常用语句和关键词
- Win10安装IIS问题
- 大数据开源组件图谱
- Set Similarity (25)
- Oracle——关于for update的锁表与解锁
- 第五周项目1建立顺序栈算法库
- Java和c/c++比较
- 计蒜客 跳跃问题
- Java基础总结
- 双端队列 (deque)
- bzoj1010: [HNOI2008]玩具装箱toy(斜率优化)
- python3和Python2的区别(一)
- TENSORFLOW新版本运行老版本代码报错解决(tensorboard) 2017.10最新版本