cuug 数据缓冲区调优

http://bbs.cuug.com/forum.php?mod=viewthread&tid=1336&extra=page%3D1

缓冲区分为
默认池
回收池
保留池
其他非默认块大小池


缓冲区中块的状态:
pending:未决,该内存块处于正在修改或者访问当中。
dirty:已经被修改过的内存块
free:脏块被写入数据文件后,就被标识为可用(空闲)

检查点:阶段性的保存修改过的数据块

DBWn:写入条件
1、保存
2、释放

检查点发生
没有空闲
达到阀值
超时
RAC PING request
表空间 offline read only
表 drop和truncate
表空间begin backup


你想,有表T,有块b1、b2、b3……b100,其中,假设b2在Buffer Cache是个脏块。
现在表T被删掉了,b1、b2直到b100,这100个块的空间被释放,假设这100个块的空间又被分配给了表M。现在块b1、b2、b3……b100属于表M。
过一会儿,DBWR被触发,将原来表T的脏块b2写到磁盘,注意,块b2已经是表M了。这将覆盖表M在b2中的数据。
如何避免这种情况呢,Drop表前先将表所有脏块写磁盘,避免以后DBWR再写它的脏块

使用多个缓冲区

keep:将经常访问的数据放在keep池中
recycle:当事务结束时,将涉及的数据块从池中剔除
       主要的目的是减少对默认池的影响
查询
select table_name,buffer_pool from user_tables

alter table dept storage(buffer_pool keep);

各个缓冲区的特点
? KEEP Pool
– 缓存的数据块能被重复访问.
– 表的大小是默认池的10%.
? RECYCLE Pool
– 回收池的数据块不能被当前事务之外其它
事务访问.
– 表的大小至少是默认池的2倍


数据缓冲区涉及的数据字典
SQL> SELECT *
2 FROM v$buffer_pool;
ID NAME LO_SETID HI_SETID SET_COUNT BUFFERS LO_BNUM HI_BNUM
-- ------- -------- -------- --------- ------- ------- -------
1 KEEP 3 3 1 14000 0 13999
2 RECYCLE 4 6 3 2000 14000 15999
3 DEFAULT 1 2 2

其它关于数据缓冲区视图
From V$SYSSTAT:


select name,value
2 FROM v$sysstat
3 WHERE name = 'free buffer inspected';
NAME VALUE
--------------------------- --------
free buffer inspected 183

From V$SYSTEM_EVENT:

SQL> SELECT event, total_waits
2 FROM v$system_event
3 WHERE event in
4 ('free buffer waits', 'buffer busy waits');
EVENT TOTAL_WAITS
---------------------- -----------
free buffer waits 337
buffer busy waits 3466

 

free buffer inspected:表示oracle在释放缓冲区,在LRU列表中扫描过多少个数据块,才找到free

buffer busy waits--热快

1.块属于段头(segment header):因为多个并发insert造成的
解决办法
1.使用多个freelist列表
2.使用自动段管理方式(利用bitmap管理)

2、如果块属于回滚段头,太多的事物使用同一个回滚段
  解决方法:
    1、尽量少的事物使用同一个回滚段

3、普通的数据块(存放数据行或者索引行的)多个进程访问同一个块中的行数据
  解决方案:
   1、使用尺寸小的数据块
   2、把pctfree的设置大一些

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

转载于:http://blog.itpub.net/500314/viewspace-1068573/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值