oracle update_详解Oracle锁机制--分类、原则、类型和两种锁

概述

没有并发就没有锁,这一块虽然很多概念性东西,但是理解下对于高并发的考虑还是有帮助的,下面先介绍下理论的东西。

b90ef90e5d8aa376fcde7a24472812f3.png

Oracle中锁的分类

Enqueues---队列类型的锁,通常和业务相关的。

Latches ---系统资源方面的锁,比如内存结构,SQL解析..


锁的原则

1、只有被修改时,行才会被锁定。

2、当一条语句修改了一条记录,只有这条记录上被锁定,在Oracle数据库中不存在锁升

级。

3、当某行被修改时,它将阻塞别人对它的修改。

4、当一个事务修改一行时,将在这个行上加上行锁(TX),用于阻止其它事务对相同行

的修改。

5、读永远不会阻止写。

6、读不会阻塞写,但有唯一的一个例外,就是select ...for update。

7、写永远不会阻塞读。

8、当一行被修改后,Oracle通过回滚段提供给数据的一致性读。

Oracle锁的类型

SQL> select type,name from V$lock_type;
51b9545714a7b0d57d74401f7f49e41d.png

TM锁和TX锁

1、TM 表锁

发生在insert,update,delete以及select for update操作时,目的是保证操

作能够正常进行,并且阻止其它人对表执行DDL操作。

2、TX锁 事务锁(行锁)

对于正在修改的数据,阻止其它会话进行修改。

a8ea032dabcee657f2a8eb41ea1fce2c.png

篇幅有限,关于锁的一些总结的概念性东西就写到这了,后面用实验介绍下update、delete、select update的几种锁定,感兴趣的朋友可以关注下!

c9e12503cf181d6827598d8a1276615d.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值