设为首页 加入收藏

TOP

Oracle的锁有几种模式?
2014-11-23 22:55:18 来源: 作者: 【 】 浏览:2
Tags:Oracle 模式

Oracle里面的锁共有一下几种模式:


0: none


1: null 空


2:Row-S 行共享(Row Share RS): 共享表锁


3:Row-X 行专用(RX): 用于行数据的修改


4:Share 共享锁(S): 阻止其他DML操作


5:S/Row-X 共享行专用(SRX): 阻止其他事务操作


6:exclusive 专用(X): 独立访问使用


以上可以看出,数字越大的锁影响的操作越多,锁的级别越高。


一般的查询语句是小于2的锁,如select * from *


select … from … for update 是2的锁,这时候返回集的数据行都将处于行级(Row-X)独占式锁定,其他对象只能对这些数据进行查询,而不能进行更新或者select for update操作。


insert/update/delete是3的锁, 在这些操作没有commit之前插入同样的记录会没有反应,因为3的锁必须要等到前一个3的锁执行释放掉以后才能继续。 创建索引的时候也会产生3,4级别的锁。


locked_mod为2,3,4的锁,不影响DML(insert,delete,update,select)操作,但是DDL(alter,drop)等修改表结构的操作会提示ora-00054错误。


当有主外键约束时执行update/delete操作可能会产生4,5的锁。


DDL语句时是6的锁。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一套笔试题 带英文单词解释的 下一篇什么是抽象类和抽象函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: