资讯专栏INFORMATION COLUMN

latch: cache buffers chains等待事件分析

IT那活儿 / 1742人阅读
latch: cache buffers chains等待事件分析
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

知识点描述

收到告警信息提示产生大量异常latch锁等待事件导致latch争用,争用产生原因如下:
  • 低效率的SQL语句(主要体现在逻辑读过高) 在某些环境中,应用程序打开执行相同的低效率SQL语句的多个并发会话,这些SQL语句都设法得到相同的数据集,每次执行都带有高 BUFFER_GETS(逻辑读取)的SQL语句是主要的原因
    相反,较小的逻辑读意味着较少的latch get操作,从而减少锁存器争用并改善性能。注意v$sql中BUFFER_GETS/EXECUTIONS大的语句。
  • Hot block 当多个会话重复访问一个或多个由同一个子cache buffers chains锁存器保护的块时,热块就会产生。当多个会话争用cache buffers chains子锁存器时,就会出现这个等待事件。

    有时就算调优了SQL,但多个会话同时执行此SQL,那怕只是扫描特定少数块,也是也会出现HOT BLOCK的。

标准指导操作

分析流程如下:
1. 过查看Oracle数据库后台日志
发现有一个通过DBLIBK连接的sql查询语句,初步觉得与后台日志的sql_id无关。
2. 查看osw日志
发现在20:01:56时cpu空闲率迅速下跌,在20:01至20:06分作ASH报告。
3. ASH报告
查看ASH报告等待事件,发现CPU占用率高达88%,并出现了latch:cache buffers chains的等待事件。
  • SQL_ID:27nu0gdkz3zs3
    执行计划:
  • SQL_ID: 6yqv6s8aywm45
    执行计划:
4. 检查执行频次
  • 27nu0gdkz3zs3
  • 6yqv6s8aywm45
总结:通过分析,如上这两个sql_id的执行频次突增,引发锁存器争用,消耗了大量的数据库资源,以上便是latch锁等待事件异常突增的原因。


本文作者:陈炎亮(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129261.html

相关文章

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<