原理:
当一个数据块读入到sga中时,该块的块头(buffer header)会放置在一个hash bucket的链表(hashchain)中。
该内存结构由一系列cache buffers chains子latch保护(又名hash latch或者cbc latch)。对Buffer cache中的块,
要select或者update、insert,delete等,都得先获得cache buffers chains子latch,以保证对chain的排他访问。
若在过程中发生争用,就会等待latch:cache buffers chains事件。

产生原因:

1. 低效率的SQL语句(主要体现在逻辑读过高)
在某些环境中,应用程序打开执行相同的低效率SQL语句的多个并发会话,这些SQL语句都设法得到相同的数据集,
每次执行都带有高 BUFFER_GETS(逻辑读取)的SQL语句是主要的原因。相反,较小的逻辑读意味着较少的latch get操作,
从而减少锁存器争用并改善性能。注意v$sql中BUFFER_GETS/EXECUTIONS大的语句。
2.Hot block
当多个会话重复访问一个或多个由同一个子cache buffers chains锁存器保护的块时,热块就会产生。
当多个会话争用cache buffers chains子锁存器时,就会出现这个等待事件。有时就算调优了SQL,但多个会话同时执行此SQL,
那怕只是扫描特定少数块,也是也会出现HOT BLOCK的。

解决方法:

1.优化SQL,如优化nested loop join,如果有可能使用hash join代替nested loop join。
2.可以利用对热块索引进行hash分区,或者使用hash簇的方式减缓热块现象。
3.调整表的pctfree值,将数据尽可能的分布到多个块中,但相同的查询要扫更多块,有负面作用。
4.并行查询是直接读数据文件,不经过SGA,即direct path read,所以就不存在锁存器争用的情况了。
但其一般是为了大量数据读取而使用的,不作为一般的解决方案。
5.等问题自己消失。有时当出现latch争用时,故障时刻确实没有较好的方式解决,找到病因才是关键。

等待事件 latch:cache buffers chains相关推荐

  1. oracle等待资源时间加长,案例:Oracle等待事件latch: cache buffers chains故障优化处理总结...

    天萃荷净 数据库的CPU使用率为100%,应用相应迟缓.查看AWR中数据库的latch:cache buffers chains等待较多 当一个数据块读入sga区,相应的buffer header会被 ...

  2. oracle数据库latch,关于Oracle数据库latch: cache buffers chains等待事件

    关于Oracle数据库latch: cache buffers chains等待事件 latch: cache buffers chains等待事件的原理 当一个数据块读入到sga中时,该块的块头(b ...

  3. latch:cache buffers chains等待事件导致的latch争用的原理原因与检查

    latch:cache buffers chains 原理 当一个数据块读入到sga中时,该块的块头(buffer header)会放置在一个hash bucket的链表(hash chain)中.该 ...

  4. Oracle等待事件(一)—— latch cache buffers chains 分析与优化思路

    一. 什么是CBC等待 首先我们需要知道CBC等待发生在哪里,为什么会发生,才能理解应该如何定位,如何处理. 首先,CBC latch是用于保护buffer cache的,因此CBC等待一定发生在bu ...

  5. 深入理解latch: cache buffers chains

    事件背景:    一个客户的数据库发生了宕机事件,查看了数据库的awr报告,原来是由于出现大量的latch: cache buffers chains等待事件导致系统消耗量大量的CPU,最终导致系统h ...

  6. 深入理解 latch: cache buffers chains

    事件背景:    一个客户的数据库发生了宕机事件,查看了数据库的awr报告,原来是由于出现大量的latch: cache buffers chains等待事件导致系统消耗量大量的CPU,最终导致系统h ...

  7. latch: cache buffers chains故障处理总结

    客户说数据库的CPU使用率为100%,应用相应迟缓. 发现是latch: cache buffers chains 作祟 故障分析思路 查看等待事件,判断故障起因 1 SQL>select * ...

  8. Oracle latch: cache buffers chains

    buffer cache深度分析之buffer cache的优化 buffer cache的等待事件     与buffer cache相关的等待事件包括:latch free.buffer busy ...

  9. latch: cache buffers chains 阻塞 buffer busy waits

    os: centos 7.4 db: oracle 11.2.0.4 版本 # cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) ...

最新文章

  1. IoT:template
  2. MySql 数据库 - 重置数据库、重置初始密码方法,数据库初始化方法,长时间不用忘记密码暴力解决方法
  3. RedHat 6.5中建立Raid5卷(软件磁盘阵列) ;并且对Raid5卷做磁盘配额
  4. JDK14性能管理工具:Jconsole详解
  5. c盘扩展卷功能只能向右扩展_信用风险管理:功能扩展和选择
  6. bst 删除节点_C ++程序查找具有N个节点的BST数量(加泰罗尼亚编号)
  7. 如何将Netbeans配置更加合理
  8. Java对象的序列化和反序列化实践
  9. Trick(二)——获取一个网页的 title 信息
  10. 2013年工作中用到的10个命令:11-20
  11. Android基本动画
  12. 中国银保监会公布银行业金融机构目前共有4608家(附全部名录)
  13. MC9S12XE 启动过程
  14. Android之远程查看异常崩溃信息——腾讯Bugly的自动集成
  15. 计算机编程领域最伟大的20个发明
  16. Web相关:Sublime如何安装ESLint插件?
  17. 阿里少壮派上位:70后、80后全面掌舵阿里
  18. jieba结巴分词加入自定义词典
  19. 项目管理的五个典型工具
  20. js 操作字符串,

热门文章

  1. 清华大学计算机系高考生源,清华在京录取圆满结束:生源好、质量优、扩幅大(转贴)...
  2. 深度解析用户画像标签体系构建方法
  3. skid buffer
  4. TCP/IP网络编程复习(上)
  5. 德国4-0葡萄牙 穆勒帽子戏法佩佩染红
  6. 如何修改Github仓库的description
  7. Spring Security + OAuth2.0
  8. Telegram 群组创建机器人bot
  9. CHIPON 芯旺微的KF32A156系列的CAN FD模块的使用介绍
  10. 【 bzoj 4355 】 Play with sequence - 线段树乱搞