gc buffer busy的优化

 
 
  
 
  
 
  

12-SEP-07 09.00.17.451 AM      12-SEP-07 05.00.03.683

查看过去一段时间的等待事件类型汇总

select wait_class_id, wait_class, count(*) cnt

from dba_hist_active_sess_history

where snap_id between 12831 and 12838

group by wait_class_id, wait_class

order by 3;

   1740759767 User I/O                           121999

可以更细化为具体的等待事件

1478861578 gc buffer busy                                67275

--在这段时间内累计有67275session等待gc buffer busy,然后查看出是哪些sql引起的

8v3b2m405atgy      42292

运行次数最多的sql达到4万多次,通过dba_hist_sqltext查看出对应的sql

insert into bigtable(id, version, client, cl_business_id, cl_order_id, desc。。。。。

该表是个分区表,且其上有很多trigger和大量的索引,需要明确该sql等待的对象

后三个是次数比较多的

   3208620 JSCHDER    BIGTABL_LG_X_CHANGE_DATE       P_2007_09                      INDEX PARTITION

等待次数最多的却是bigtable_log,这是因为表上有一个trigger,每对bigtable更新一次,就要往该表insert7次;

我们可以进一步确认那些块竞争最激烈

         1487         233206        120

似乎并没有过热的块,因为有超过4万个session访问这些object,但等待次数最多的块只有120次;

检查一下这些块是否为段头块,

BIGTABLE_LOG                          1209        16393

可惜这些只是普通的数据块。

任何时候,只要表数据块在insert时候有严重的并发问题,首先要想到的就是space management;

检查该表所属表空间的管理方式

 

1                        1

其表空间使用手工段管理且只有一个freelist;

小结:这是一个6节点RAC,最忙的表却只有一个freelist,难怪会引起严重的gc buffer busy

但是因为每个块都很快的被填满,所以没有等待次数过多的块;

不需要考虑ITL的问题,因为插入的都是空块,ITL如果不够会自动分配直到块满为止;

该系统是从non-rac升级到RAC的,因此所有的object都是MSSM,解决完这个object其他object的问题则会后续显现;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-712622/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15480802/viewspace-712622/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值