暂无图片
Latch和Lock有什么区别?
我来答
分享
2023-08-09
Latch和Lock有什么区别?

Latch和Lock有什么区别?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
北斗

从某种意义上说, Latch 是内存中的资源锁,数据库对象(表,索引等)的锁叫Lock。

Latch 和 Lock 的区别:

  • ( 1)Latch 是对内存数据结构提供互斥访问的一种机制,而 Lock 是以不同的模式来套取共享资源对象,各个模式间存在着兼容或排斥,从这点看出, Latch的访问,包括查询也是互斥的,任何时候,只能有一个进程能 spin 住内存的某一块,幸好这个过程是相当的短暂,否则系统性能将没的保障,从 9I 开始,允许多个进程同时查询相同的内存块。
  • ( 2)Latch 只作用于内存中,他只能被当前实例访问,而 Lock 作用于数据库对象,在 RAC 体系中实例间允许 Lock 检测与访问。
  • ( 3)Latch 是瞬间的占用释放, Lock 的释放需要等到事务正确的结束,他占用的时间长短由事务大小决定
  • ( 4)Latch 是非入队的,而 Lock 是入队的
  • ( 5)Latch 不存在死锁,而 Lock 中存在。
暂无图片 评论
暂无图片 有用 2
暂无图片
海鸥
2023-08-10
绝大多数的Latch 都有自己的队列:等待者队列和持有者队列。 a. 持有Latch 的进程被链接到持有者队列, b. 申请不兼容模式的Latch、遇到阻塞的进程,会被链接到等待者队列。
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏