oracle 锁 分析

1.

分为 tx 和 tm 。
即 行级 和 表级

其中

行级是 X
表级是 S X RS RX SRX
S:整个表是share的
X:整个表是X的
RS:表中某些行是share的
RX:表中某些行是exclucive的
SRX:在某个事务执行的过程中, 先加了S锁, 然后还请求了RX锁

2. 加锁过程是
先在表上加表级锁
再在确定的某一些行上加行级锁

3. 加表级锁的时候要检查相容性


4. 一些sql语句和会产生的加锁类型的对应关系如下:
select :RS
update、delete,insert: RX

5. S,X,SRX 等类型的表级锁可以通过以下语句加锁

lock table A in ...model...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.什么是ORACLE 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加就是实现数据库并发控制的一个非常重要的技术。 2.ORACLE的类型 在数据库有两种基本的类型:排它(Exclusive Locks,即X)和共享(Share Locks,即S)。当数据对象被加上排它时,其他的事务不能对它修改。加了共享的数据对象可以被其他事务读取,但不能被删除和修改。数据库利用这两种基本的类型来对数据库的事务进行并发控制。 ? 根据保护的对象不同,Oracle数据库可以分为以下几大类:DML(data locks,数据),用于保护数据的完整性;DDL(dictionary locks,字典),用于保护数据库对象的结构,如表、索引等的结构定义;内部和闩(internal locks and latches),保护 数据库的内部结构。 在Oracle数据库,DML主要包括TM和TX,其TM称为表级,TX称为事务或行级。? 当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的。当TM获得后,系统再自动申请TX类型的,并将实际定的数据行的标志位进行置位。这样在事务加前检查TX相容性时就不用再逐行检查标志,而只需检查TM模式的相容性即可,大大提高了系统的效率。TM包括了SS、SX、S、X 等多种模式,在数据库用0-6来表示。不同的SQL操作产生不同类型的TM。 TM的类型 0 none? 1 NULL 空 Select? 2 SS(Row-S) 行级共享,其他对象? 只能查询这些数据行 Select for update、Lock for?update、 Lock row share? 3 SX(Row-X) 行级排它,? 在提交前不允许做DML操作 Insert、Update、? Delete、Lock row share? 4 S(Share) 共享 Create index、Lock share? 5 SSX(S/Row-X) 共享行级排它 Lock share row exclusive? 6 X(Exclusive) 排它 Alter table、Drop able、Drop index、Truncate table 、Lock exclusive Oracle举例 欢迎登陆交流 程序员百味: http://www.bywei.cn/blog

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值