• 售前

  • 售后

热门帖子
入门百科

[Oracle] 浅谈Lock与Latch

[复制链接]
把心掏給珎丶 显示全部楼层 发表于 2021-10-26 14:05:08 |阅读模式 打印 上一主题 下一主题
首先谈谈它们的共同点吧:它们本质上都是一种对资源的独占锁定,都是由并发引起(如果数据库只有一个session,就谈不上锁定)。
接着偏重谈谈它们的差别点:
首先,它们的目标不一样,enqueue (即Lock,Oracle官方文档混淆利用这两个名词,在等待变乱里,可以看到大量的enqueue,实在就是lock)是为了解决业务层面的数据争用,而latch是为了解决内存资源的争用。
其次,它们的运行方式不一样,enqueue采取列队方式,先到先得,而latch的竞争近乎无序,以一种随机的方式,先到不肯定先得,得靠抢,而且它还以一种时间片轮训的方式,不会不停霸占,即时还没运行完,时间片一到也。
第三,会话持有的时长不一样,enqueue根据业务情况,可能会持有较长时间,而latch通常非常短。第四,引起的缘故因由不一样,enqueue太多通常是业务设计的题目,而latch过多,一般是数据库层面的题目(如未利用绑定变量、表或索引热块等)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作