buffer busy waits等待事件的原因:hot block [转]
http://blog.chinaunix.net/u/24260/showart_456274.html
************************************************************************************************************************************************
buffer busy waits等待事件的原因:hot block
************************************************************************************************************************************************
在SGA中读取或修改缓冲区的会话必须首先获取cache buffers chains锁存器,并且遍历这个缓冲区链,直到他发现必需的缓冲区头。然后,他必须以共享模式或独占模式获取
一个缓冲区锁或缓冲区头上的pin,这取决于他计划的操作。一旦缓冲区头被钉住,会话就释放cache buffers chains锁存器,并在缓冲区自身上执行计划的操作。如果无法获
取一个pin,会话就在buffer busy waits等待事件上等待。这种等待时间不会应用于在会话的私有PGA中执行的读取或写入操作。
块可能被其它的session读到缓冲区,所以session必须等待块的读入结束。
session可能有与等待的session查询不协调的缓冲块。
出现了hot block,所谓hot block指的是同时有若干个session,同时对一个block进行操作,导致此block比较忙;
导致block比较忙的原因是:oracle数据库的数据存放的最小单位就是block,数据每次读取数据的时候只能以block为单位;
如果有多条记录存放在一个block上的话,那么导致多个session访问同一个block的可能性就越大;
解决hot block的方法有:
1、出现此情况通常可能通过几种方式调整:增大data buffer;
2、增加freelist,减小pctused;怎样的目的是将一个block上可以使用的空间减少,这样的话:一个block上的数据存放的较少,可以提高应用的访问并发率,减少hot block的产生;
3、增加回滚段数目,增大initrans,考虑使用LMT, 确认是不是由于热点块造成(如果是可以用反转索引,或者用更小块大小);
3、可以建立block较小的表空间,见热点对象移动到此表空间上去;
4、优化应用,优化索引,提高索引的命中率;
◎ Oracle会话正在等待钉住一个缓冲区。必须在读取或修改缓冲区前将它钉住。在任何时刻只有一个进程可以钉住一个缓冲区。
◎ buffer busy waits表明读/读、读/写、写/写争用。
◎ 采取的适当措施取决于P3参数中的原因码。
A、如果等待处于字段头部,应增加自由列表(freelist)的组数,或者增加pctused到pctfree之间的距离。
B、如果等待处于回退段(undo)头部块,可以通过增加回滚段(rollback segment)来解决缓冲区的问题;
C、如果等待处于回退段(undo)非头部块上,就需要降低驱动一致读取的表中的数据密度,或者增大DB_CACHE_SIZE;
D、如果等待处于数据块,可以将数据移到另一数据块以避开这个"热"数据块、增加表中的自由列表或使用LMT表空间;
E、如果等待处于索引块,应该重建索引、分割索引或使用反向键索引。
************************************************************************************************************************************************
buffer busy waits等待事件的原因:hot block [转]相关推荐
- buffer busy waits等待事件案例-vage
讨厌香草冰激凌的汽车与Buffer busy wiats的故事 记得好几年前看到过一个故事,通用公司曾收到一客户的邮件,邮件中客户描述了一个非常奇怪的问题.他们家有晚饭后去吃冰激凌的习惯,如果他们买的 ...
- oracle缓冲等待块,CSS_Oracle数据库buffer busy wait等待事件, 当会话意图访问缓冲存储 - phpStudy...
Oracle数据库buffer busy wait等待事件 当会话意图访问缓冲存储器中的数据块,而该数据块正在被其它会话使用时产生buffer busy waits事件.其它会话可能正在从数据文件向缓 ...
- oracle+buffer+busy+wait,Oracle数据库buffer busy wait等待事件 (2)
--查找等待块类型 SELECT 'segment Header' CLASS, a.Segment_Type, a.Segment_Name, a.Partition_Name FROM Dba_S ...
- RAC性能分析 - gc buffer busy acquire 等待事件
概述 --------------------- gc buffer busy是RAC数据库中常见的等待事件,11g开始gc buffer busy分为gc buffer busy acquire和 ...
- 等待事件buffer busy waits
转载自:http://blog.csdn.net/cymm_liu/article/details/7968537 非空闲等待之:buffer busy waits buffer busy wait ...
- buffer busy waits
当进程需要存取SGA中的buffer的时候,它会依次执行如下步骤的操作: 1.获得cache buffers chains latch,遍历那条buffer chain直到找到需要的buffer he ...
- buffer busy waits理解
一.什么是buffer busy waits 当n个进程想以不兼容的模式持有内存块上的buffer pin时,就会产生buffer busy waits等待. oracle访问/修改数据块的步骤: 1 ...
- 分析解决11gR2 双节点RAC环境下的gc cr block busy/gc buffer busy acquire等待
? 系统环境 两节点的RAC:AIX6.1+Oracle 11.2.0.3.3 ? AWR里展示出来的各种症状(数据来自实例2) 虽然应用没有报障,但AWR报告里的各种迹象已经很明显了 (1) ...
- Buffer Busy Waits的两个结论
官方文档: This wait indicates that there are some buffers in the buffer cache that multiple processes ar ...
最新文章
- 如果企业网站长时间没有排名可以从多个方面进行分析
- 深度优先搜索和广度优先搜索的比较与分析
- java线程6种状态转换,java6种线程状态
- 如何在Chrome开发者工具console里手动调用focus方法给元素设置focus
- oracle游标循环定义变量赋值,PL/SQL 循环 数组 游标的使用
- Poj 1556 The Doors 计算几何+最短路
- 4-3逻辑非运算符及案例 4-4
- spring 多数据源 总结
- 解压大于4g的文件_python解压压缩包
- 重新学习 React (二) Diffing 算法
- mysql 4604,mysql--centos(7)安装
- Qt 之 直播流播放Qt-Vlc
- 软考计算机硬件工程师考试大纲,2016年软考信息安全工程师考试大纲
- 来自资深程序员的 3 条锦囊:永远不要辞职,除非……
- Mysql UDF Bug “ERROR 1125 (HY000): Function ‘xxx‘ already exists“
- 0xc000007b的解决办法(续)
- 蒙特卡洛_蒙特卡洛辍学
- NBIOT专栏之BC28与STM32F103单片机串口通信连接阿里云
- 在疫情肆虐的世界里,适度恐惧的活着
- Latex不能编译eps文件