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 [转]相关推荐

  1. buffer busy waits等待事件案例-vage

    讨厌香草冰激凌的汽车与Buffer busy wiats的故事 记得好几年前看到过一个故事,通用公司曾收到一客户的邮件,邮件中客户描述了一个非常奇怪的问题.他们家有晚饭后去吃冰激凌的习惯,如果他们买的 ...

  2. oracle缓冲等待块,CSS_Oracle数据库buffer busy wait等待事件, 当会话意图访问缓冲存储 - phpStudy...

    Oracle数据库buffer busy wait等待事件 当会话意图访问缓冲存储器中的数据块,而该数据块正在被其它会话使用时产生buffer busy waits事件.其它会话可能正在从数据文件向缓 ...

  3. 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 ...

  4. RAC性能分析 - gc buffer busy acquire 等待事件

    概述 --------------------- gc buffer busy是RAC数据库中常见的等待事件,11g开始gc buffer  busy分为gc buffer busy acquire和 ...

  5. 等待事件buffer busy waits

    转载自:http://blog.csdn.net/cymm_liu/article/details/7968537 非空闲等待之:buffer busy waits buffer busy wait ...

  6. buffer busy waits

    当进程需要存取SGA中的buffer的时候,它会依次执行如下步骤的操作: 1.获得cache buffers chains latch,遍历那条buffer chain直到找到需要的buffer he ...

  7. buffer busy waits理解

    一.什么是buffer busy waits 当n个进程想以不兼容的模式持有内存块上的buffer pin时,就会产生buffer busy waits等待. oracle访问/修改数据块的步骤: 1 ...

  8. 分析解决11gR2 双节点RAC环境下的gc cr block busy/gc buffer busy acquire等待

    ?  系统环境 两节点的RAC:AIX6.1+Oracle 11.2.0.3.3 ?  AWR里展示出来的各种症状(数据来自实例2) 虽然应用没有报障,但AWR报告里的各种迹象已经很明显了 (1)   ...

  9. Buffer Busy Waits的两个结论

    官方文档: This wait indicates that there are some buffers in the buffer cache that multiple processes ar ...

最新文章

  1. 如果企业网站长时间没有排名可以从多个方面进行分析
  2. 深度优先搜索和广度优先搜索的比较与分析
  3. java线程6种状态转换,java6种线程状态
  4. 如何在Chrome开发者工具console里手动调用focus方法给元素设置focus
  5. oracle游标循环定义变量赋值,PL/SQL  循环 数组 游标的使用
  6. Poj 1556 The Doors 计算几何+最短路
  7. 4-3逻辑非运算符及案例 4-4
  8. spring 多数据源 总结
  9. 解压大于4g的文件_python解压压缩包
  10. 重新学习 React (二) Diffing 算法
  11. mysql 4604,mysql--centos(7)安装
  12. Qt 之 直播流播放Qt-Vlc
  13. 软考计算机硬件工程师考试大纲,2016年软考信息安全工程师考试大纲
  14. 来自资深程序员的 3 条锦囊:永远不要辞职,除非……
  15. Mysql UDF Bug “ERROR 1125 (HY000): Function ‘xxx‘ already exists“
  16. 0xc000007b的解决办法(续)
  17. 蒙特卡洛_蒙特卡洛辍学
  18. NBIOT专栏之BC28与STM32F103单片机串口通信连接阿里云
  19. 在疫情肆虐的世界里,适度恐惧的活着
  20. Latex不能编译eps文件

热门文章

  1. 作者解读ICML接收论文:如何使用不止一个数据集训练神经网络模型?
  2. 研究生扩招20.74%!教育部公布重要数据
  3. 厚积薄发!他读博前三年零文章,后期发力产出11篇一作,现任985高校博导
  4. 华人博士生首次尝试用两个Transformer构建一个GAN
  5. 特斯拉首次达成连续4季度盈利:车卖的少了,钱却挣得多了
  6. 机器学习算法集锦:从贝叶斯到深度学习及各自优缺点
  7. 如何通俗解释欧拉公式?
  8. 24个必须掌握的数据库面试问题~
  9. 面试官问:线程池除了常见的4种拒绝策略,你还知道哪些?
  10. 美多商城之用户中心(收货地址1)