CACHE BUFFER CHAINS

出现CACHE BUFFER CHAIN 后首先查看V$SESSION_WAIT 找到P1raw的值,此P1对应了v$latch_children addr和 x$bh 的HLADDR

然后查看v$latch_children 找到GET最高的LATCH ADDR

 select * from v$latch_children where name='cache buffers chains' order by gets desc;

最后和X$BH连接找到对象

查看当前等待的,注意本语句只能查询本实例,RAC需要每个实例都进行。

select hladdr,

       obj,

       b.sid,

       b.sql_id,

       (select object_name

          from dba_objects

         where (data_object_id is null and object_id = x.obj)

            or data_object_id = x.obj

           and rownum = 1) as object_name,

       dbarfil,

       dbablk,

       tch,

       TIM

  from x$bh x,

   (select P1RAW,sql_id,sid from v$session where wait_class'Idle' and event='latch: cache buffers chains') b 

 where HLADDR in (select P1RAW from v$session where wait_class'Idle' and event='latch: cache buffers chains')

       and x.hladdr=b.P1RAW(+)

 order by tch desc;

 

查看系统中最为严重的

select hladdr,

       obj,

       (select object_name

          from dba_objects

         where (data_object_id is null and object_id = x.obj)

            or data_object_id = x.obj

           and rownum = 1) as object_name,

       dbarfil,

       dbablk,

       tch,

       TIM

  from x$bh x

 where HLADDR in (select addr

                    from (select *

                            from (select *

                                    from v$latch_children

                                   where name = 'cache buffers chains'

                                   order by gets desc)

                           where rownum
 order by tch desc;

 

测试:

1、建立测试表

create table cbc_test(id number,name char(100));

2、插入数据

insert into cbc_test(id,name)

select rownum,object_name from dba_objects;

insert into cbc_test

select * from cbc_test;

多执行几次

SQL> select count(*) from cbc_test;

 

  COUNT(*)

----------

    401336

3、创建索引

create index cbc_test_idx on cbc_test(id);

4、建立存储过程进行大量的扫描

create or replace procedure cbc_do_select is 

begin 

   for x in (select /*+ INDEX(cbc_test cbc_test_idx) */ * from cbc_test where id >=0) loop

   null;

end loop;

end;

5、模拟足够多的JOB

 var job_no number;

begin

  sys.dbms_job.submit(job => :job,

                      what => 'cbc_do_select;',

                      next_date => to_date('13-06-2013 10:16:04', 'dd-mm-yyyy hh24:mi:ss'),

                      interval => 'sysdate+1/2880');

  commit;

end;

6、观察

HLADDR                  OBJ        SID SQL_ID        OBJECT_NAME                                                                         DBARFIL     DBABLK        TCH        TIM

---------------- ---------- ---------- ------------- -------------------------------------------------------------------------------- ---------- ---------- ---------- ----------

000007FF1C0FCBC0      53216                          CBC_TEST                                                                                  1      72322        534 1371092084

000007FF1C7D72E8      53216                          CBC_TEST                                                                                  1      71538        529 1371092084

000007FF1C784708      53216        138 3uakn4vk92jf8 CBC_TEST                                                                                  1      75337        517 1371092080

000007FF1C0FCBC0      53216                          CBC_TEST                                                                                  1      72089        491 1371092080

000007FF1C7D72E8      53216                          CBC_TEST                                                                                  1      71305        487 1371092080

000007FF1C0FCBC0      53216                          CBC_TEST                                                                                  1      76660        469 1371092080

000007FF1C7D72E8      53216                          CBC_TEST                                                                                  1      75876        466 1371092080

000007FF1CBDB268      53216                          CBC_TEST                                                                                  1      74975        429 1371092082

000007FF1C784708      53216        138 3uakn4vk92jf8 CBC_TEST                                                                                  1      70999        422 1371092082

000007FF1C784708      53216        138 3uakn4vk92jf8 CBC_TEST                                                                                  1      75570        421 1371092082

000007FF1C784708 4294967295        138 3uakn4vk92jf8                                                                                           2        193         26 1371091585

000007FF1C784708       9091        138 3uakn4vk92jf8 WRH$_SGA_TARGET_ADVICE                                                                    3       3599          6 1371088807

000007FF1CBDB268       8999                          WRH$_SQL_SUMMARY                                                                          3       3004          4 1371045615

000007FF1C784708       4226        138 3uakn4vk92jf8 I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST                                                            3      34198          4 1371045618

000007FF1C7D72E8       8995                          WRH$_SQLTEXT                                                                              3      34504          3 1371045618

000007FF1C7D72E8        181                          C_TOID_VERSION#                                                                           1      58291          3 1371086393

000007FF1C784708         93        138 3uakn4vk92jf8 ACCESS$                                                                                   1      27386          3 1371014071

000007FF1C0FCBC0        181                          C_TOID_VERSION#                                                                           1      50399          3 1371086393

000007FF1C784708        181        138 3uakn4vk92jf8 C_TOID_VERSION#                                                                           1      14372          3 1371086393

000007FF1CBDB268        101                          I_SYN1                                                                                    1        763          2 1371045607

 

HLADDR                  OBJ        SID SQL_ID        OBJECT_NAME                                                                         DBARFIL     DBABLK        TCH        TIM

---------------- ---------- ---------- ------------- -------------------------------------------------------------------------------- ---------- ---------- ---------- ----------

000007FF1CBDB268      53100                          WRH$_SERVICE_STAT_PK                                                                      3      37941          2 1371045619

000007FF1C784708      53090        138 3uakn4vk92jf8 WRH$_PARAMETER                                                                            3      38536          2 1371045620

000007FF1C7D72E8 4294967295                                                                                                                    2        499          1 1371089114

000007FF1C0FCBC0      52856                          WRH$_SQLSTAT_INDEX                                                                        3      35288          1 1371045613

000007FF1C0FCBC0         73                          IDL_UB1$                                                                                  1      11124          1 1371014072

000007FF1C7D72E8         75                          IDL_UB2$                                                                                  1       6002          1 1370999208

 

26 rows selected

阅读(2097) | 评论(0) | 转发(0) |

0

上一篇:RAC下归档不放到共享盘的测试

下一篇:BUFFER CACHE寻找流程

时间: 2024-07-30 18:36:06

CACHE BUFFER CHAINS的相关文章

深入剖析:关于cache buffers chains的经典案例处理详解

卢文星 目前就职云和恩墨,南区交付工程师,有超过8年超大型数据库管理经验,擅长Oracle数据库性能优化与升级迁移. 故障现象 某省税务核心业务系统在7月13日11-12点出现业务处理非常缓慢,偶尔出现卡住不动.某业务功能处理时间是平时的10倍以上. 已知情况: 1.近两周开始,在白天业务高峰期业务系统会出现处理缓慢 2.数据库层面出现大量latch:cache buffers chains等待会话 3.每次问题大概持续了30分钟后,latch:cache buffers chains等待消失,

逻辑读产生Cache Buffer Chain(简称CBC) Latch的解析

测试环境:版本11gR2 SQL> select * from v$version where rownum=1; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production 一.逻辑读的过程  1.Oracle以每个块的文件号.

【转载】latch: cache buffers chains

       当一个数据块读入sga区,相应的buffer header会被放置到hash列表上,我们称其这hash chains,chain在中文的意为链条或串的意思,表达就是关连性.如果一个进程想访问或修改hash chain上的block,它首先要获得"cache buffers chains" latch.   原因一:低效率的SQL语句(主要体现在逻辑读过高) cache buffers chains latch很大程度与逻辑读有关,所以要观注v$sql中BUFFER_GET

ORACLE等待事件latch: cache buffers chains

    今天上午,电渠生产库维护人员通知,ORACLE生产库中有比较多的latch: cache buffers chains引起的会话,造成堵塞,相关处理过程如下    环境:hp-unix    数据库版本:10.2.0.5    登录数据库查询等待事件:      根据等待事件latch: cache buffers chains查询相关的SQL_ID,引起争用的对象所在的文件号和块号 select * from (select      count(*),      sql_id,   

深入理解latch: cache buffers chains

事件背景:   一个客户的数据库发生了宕机事件,查看了数据库的awr报告,原来是由于出现大量的latch: cache buffers chains等待事件导致系统消耗量大量的CPU,最终导致系统hang住: 说明:   要理解latch: cache buffers chains并解决这个问题,就需要深入的了解Buffer Cache及其原理.1.Buffer Cache概述:   Buffer Cache是SGA的一部分,Oracle利用Buffer Cache来管理data block,B

等待模拟-cache buffer chain

出现CACHE BUFFER CHAIN 后首先查看V$SESSION_WAIT 找到P1raw的值,此P1对应了v$latch_children addr和 x$bh 的HLADDR 然后查看v$latch_children 找到GET最高的LATCH ADDR  select * from v$latch_children where name='cache buffers chains' order by gets desc;  select * from v$latch_children

缓解latch: cache buffers chains的案例

这两天我们的一个核心系统U*S,正在做压力测试,虽然压测的服务器配置不如生产,但可以反映出一些问题,初始测试的TPS可以说非常低,据测试同事反映,压测一会,数据库服务器CPU就上来了,业务上有积报现象,找不着原因. 既然数据库服务器CPU飙升上来了,说明数据库服务器上有压力,这就需要看压测期间,数据库有何负载变化.Oracle提供了我们非常丰富的工具,AWR就是其中之一,可以让我们了解特定时间段,数据库相关负载信息,具体使用方法可以参考<一个执行计划异常变更的案例 - 外传之AWR>. 测试数

[20150121]关于latch cache buffers chains

[20150121]关于latch cache buffers chains事件.txt --最近一直在看,关于latch: cache buffers chains的等待事件. --造成这个事件的主要原因有2个:一个是热链,另外一个是热块.我喜欢通过例子来说明,实际上书上写的更加详细. --这里主要测试热块造成的情况. 1.建立测试环境: SCOTT@test> @ver1 PORT_STRING                    VERSION        BANNER -------

《Oracle高性能自动化运维》一一2.4 Buffer Cache

2.4 Buffer Cache 2.4.1 Buffer(Cache)Pool 1. Buffer(Cache)Pool组成结构 Oracle Buffer Cache由3个Buffer Pool组成,如图2-9所示. 其中: Default Pool:默认池,用于缓存常规数据: Keep Pool:保留池,主要用于缓存频繁更新的小表: Recycle Pool:回收池,用于缓存随机使用的大表. 2. Buffer Pool与Working Set Buffer Pool与Working Se