roofwei 2015-11-25 14:12 采纳率: 0%
浏览 1605

关于Oracle共享锁的问题

对于Oracle表级共享锁,有点想不明白,A锁住表T之后,B可以读T,不能改T,这个功能完全可以只用一个锁的概念(独占锁)就可以实现,为什么还要加一个共享锁的概念呢?
刚做了如下的实验:
会话A在T上加S锁
数据:A可以修改数据,会话B不能修改数据。
结构:A可以修改表结构,会话B不能修改表结构。
锁:会话B可以加S锁,但不能加X锁

会话A给T加X锁
数据:A可以改数据,会话B不能修改数据
结构:A可以改结构,会话B不能改结构
锁:会话B不能加S锁,也不能加X锁。

从上面的实验可以看出,共享锁和独占锁,在表数据和表结构上的功能是完全一样的,请问为什么要在这里把表级锁分成共享锁和独占锁呢?

  • 写回答

1条回答 默认 最新

  • 鼬佐 2015-11-26 02:14
    关注

    本人也是菜鸟,我说一下我的理解,共享锁的目的就是别人还可以查数据但是不能改,如果只用独占锁的话,别人也不能查数据了,那样读数据库的效率就太低了。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!