oracle中的latch: cache buffers chains 与热块
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 与热块相关推荐
- oracle等待资源时间加长,案例:Oracle等待事件latch: cache buffers chains故障优化处理总结...
天萃荷净 数据库的CPU使用率为100%,应用相应迟缓.查看AWR中数据库的latch:cache buffers chains等待较多 当一个数据块读入sga区,相应的buffer header会被 ...
- oracle数据库latch,关于Oracle数据库latch: cache buffers chains等待事件
关于Oracle数据库latch: cache buffers chains等待事件 latch: cache buffers chains等待事件的原理 当一个数据块读入到sga中时,该块的块头(b ...
- Oracle等待事件(一)—— latch cache buffers chains 分析与优化思路
一. 什么是CBC等待 首先我们需要知道CBC等待发生在哪里,为什么会发生,才能理解应该如何定位,如何处理. 首先,CBC latch是用于保护buffer cache的,因此CBC等待一定发生在bu ...
- 深入理解latch: cache buffers chains
事件背景: 一个客户的数据库发生了宕机事件,查看了数据库的awr报告,原来是由于出现大量的latch: cache buffers chains等待事件导致系统消耗量大量的CPU,最终导致系统h ...
- 深入理解 latch: cache buffers chains
事件背景: 一个客户的数据库发生了宕机事件,查看了数据库的awr报告,原来是由于出现大量的latch: cache buffers chains等待事件导致系统消耗量大量的CPU,最终导致系统h ...
- 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) ...
- latch: cache buffers chains故障处理总结
客户说数据库的CPU使用率为100%,应用相应迟缓. 发现是latch: cache buffers chains 作祟 故障分析思路 查看等待事件,判断故障起因 1 SQL>select * ...
- latch:cache buffers chains
1.产生原理 当一个数据块读入到sga中时,该块的块头(buffer header)会放置在一个hash bucket的链表(hash chain)中.该内存结构由一系列cache buffers c ...
- 等待事件 latch:cache buffers chains
原理: 当一个数据块读入到sga中时,该块的块头(buffer header)会放置在一个hash bucket的链表(hashchain)中. 该内存结构由一系列cache buffers chai ...
最新文章
- vscode折叠/展开所有区域代码快捷键
- Java文件非法字符
- 2020年联通软件研究院校招笔试第三题
- php+堆排序算法,排序算法-堆排序-php
- 交叉编译termcap1.3.1
- Ubuntu18.04上安装RTX 2080Ti显卡驱动
- 【消息队列之rabbitmq】学习RabbitMQ必备品之一
- mfc编程淘汰了吗_四种基本的编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法)...
- Python 开源电子书资源
- IOC容器特性注入第五篇:查找(Attribute)特性注入
- 加/减/乘/除 下的取余
- 实现一个文本文件的解析类(vector,字符串解析的应用)
- ORB-SLAM2代码详解
- outlook发邮件的服务器,outlook中要求写接收、发送邮件的服务器,应该怎样写?...
- 多个java性能优化细节
- word中文输入时,符号却是英文符号,修改方法
- 无线传感器网络技术原理及应用 许毅编著(转载请注明出处---https://www.cnblogs.com/qingl)...
- 华尔街英语:又一成人英语巨头悄然出局
- 配电网PMU优化配置与状态估计(Matlab代码实现)
- 1一10到时的英文单词_1英语(1到10的英语单词)
热门文章
- IOS 制作证书,推送 , 打包发布。
- 编程基础知识(变简单的进制转换)
- 左倾红黑树的go语言实现
- html 输入框并行,Python:输入文本框并行捕获userinput到OpenCV Live网络摄像头图像...
- 网线标准以及国内外大牌
- softer nms论文阅读Bounding Box Regression with Uncertainty for Accurate Object Detection
- 揭秘:微信解封一单30元纯利润的项目
- 爬取并分析QQ好友的说说
- Android集成QQ登录
- 中国android手机市场占有率,Android成全球第二大手机系统 市场份额达26%