oracle中的latch: cache buffers chains 与热块

  • oracle中的latch: cache buffers chains 与热块
    • ORACLE中的buffer cache
    • latch: cache buffers chains产生的原因
    • 优化措施
    • 查找热块

oracle中的latch: cache buffers chains 与热块

ORACLE中的buffer cache

oracle中有各种buffer cache事件,buffer cache简单的说就是缓冲区,主要用于缓冲数据块,buffer cache位于sga中,所以当发现SGA过大时,可以优先考虑是buffer cache中缓存中的数据块过多导致的
Buffer cache的类型通常包括

  • default buffer cache
  • keep buffer cache
  • recycle buffer cache
  • nk buffer caches
    buffer caceh采用lru算法来淘汰掉过时的数据

latch: cache buffers chains产生的原因

latch: cache buffers chains事件会导致数据库执行卡顿。buffer cache主要缓存的就是数据块,当一个数据块被放入buffer cache中,oracle会同时将数据块对应的buffer header放置到一个hash列表中,任何一个进程想访问或者修改buffer cache中的数据,都需要先获得一个latch,也就是cache buffers chains,当有多个进程同时访问一个数据块时,就会产生latch: cache buffers chains时间。

优化措施

latch: cache buffers chains 本身不可避免,是数据库在高并发在下对一致性事务的一种保护,但是如果latch: cache buffers chains长时间出现。主要原因可能是SQL出现了效率问题,其次是sga的大小确实需要扩充。
SGA的大小可以通过AWR报告查看;
SQL的效率要重点关注SQL的逻辑读,因为逻辑读会大大概率导致latch: cache buffers chains不释放,逻辑读可以关注V$SQLAREA中的buffer_gets 和executions
减少逻辑读的关键:

  • 优化SQL的执行逻辑,特别是表关联的时候,减少主表(基表)参与关联的数据量
  • 在表上增加合适的索引

查找热块

latch: cache buffers chains 是由于多个进程访问同一个数据块产生的,也就是热块,那么如果能定位到热块就会对问题定位和解决有很大的帮助
(以下来源网络来源连接)

--找出p1raw
select p1,p1raw from v$session_wait where event='latch: cache buffers chains';
-找到对象
SELECT /*+ RULE */
E.OWNER || '.' || E.SEGMENT_NAME SEGMENT_NAME,
E.PARTITION_NAME,
E.EXTENT_ID EXTENT#,
X.DBABLK - E.BLOCK_ID + 1 BLOCK#,
X.TCH,
L.CHILD#
FROM SYS.V$LATCH_CHILDREN L, SYS.X$BH X, SYS.DBA_EXTENTS E
WHERE X.HLADDR = '00000002576EE018'--p1rawAND E.FILE_ID = X.FILE#AND X.HLADDR = L.ADDRAND X.DBABLK BETWEEN E.BLOCK_ID AND E.BLOCK_ID + E.BLOCKS - 1
ORDER BY X.TCH DESC;

oracle中的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. Oracle等待事件(一)—— latch cache buffers chains 分析与优化思路

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

  4. 深入理解latch: cache buffers chains

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

  5. 深入理解 latch: cache buffers chains

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

  6. 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) ...

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

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

  8. latch:cache buffers chains

    1.产生原理 当一个数据块读入到sga中时,该块的块头(buffer header)会放置在一个hash bucket的链表(hash chain)中.该内存结构由一系列cache buffers c ...

  9. 等待事件 latch:cache buffers chains

    原理: 当一个数据块读入到sga中时,该块的块头(buffer header)会放置在一个hash bucket的链表(hashchain)中. 该内存结构由一系列cache buffers chai ...

最新文章

  1. vscode折叠/展开所有区域代码快捷键
  2. Java文件非法字符
  3. 2020年联通软件研究院校招笔试第三题
  4. php+堆排序算法,排序算法-堆排序-php
  5. 交叉编译termcap1.3.1
  6. Ubuntu18.04上安装RTX 2080Ti显卡驱动
  7. 【消息队列之rabbitmq】学习RabbitMQ必备品之一
  8. mfc编程淘汰了吗_四种基本的编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法)...
  9. Python 开源电子书资源
  10. IOC容器特性注入第五篇:查找(Attribute)特性注入
  11. 加/减/乘/除 下的取余
  12. 实现一个文本文件的解析类(vector,字符串解析的应用)
  13. ORB-SLAM2代码详解
  14. outlook发邮件的服务器,outlook中要求写接收、发送邮件的服务器,应该怎样写?...
  15. 多个java性能优化细节
  16. word中文输入时,符号却是英文符号,修改方法
  17. 无线传感器网络技术原理及应用 许毅编著(转载请注明出处---https://www.cnblogs.com/qingl)...
  18. 华尔街英语:又一成人英语巨头悄然出局
  19. 配电网PMU优化配置与状态估计(Matlab代码实现)
  20. 1一10到时的英文单词_1英语(1到10的英语单词)

热门文章

  1. IOS 制作证书,推送 , 打包发布。
  2. 编程基础知识(变简单的进制转换)
  3. 左倾红黑树的go语言实现
  4. html 输入框并行,Python:输入文本框并行捕获userinput到OpenCV Live网络摄像头图像...
  5. 网线标准以及国内外大牌
  6. softer nms论文阅读Bounding Box Regression with Uncertainty for Accurate Object Detection
  7. 揭秘:微信解封一单30元纯利润的项目
  8. 爬取并分析QQ好友的说说
  9. Android集成QQ登录
  10. 中国android手机市场占有率,Android成全球第二大手机系统 市场份额达26%