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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏