自动化分析Oracle buffer cache的优化思路

本文探讨了优化Oracle BUFFER CACHE以解决数据块争用问题的多种策略,包括重新设计应用、调整数据块大小、设置PCTFREE、使用HASH分区表、反转键索引、增大BUFFER CACHE、合理使用KEEP和RECYCLE POOL,以及运用ASSM技术。这些方法在减少争用的同时可能带来新的挑战,需要根据应用特点谨慎评估。
摘要由CSDN通过智能技术生成

解决Oracle BUFFER CACHE的数据块争用问题主要有以下两种思路:
重新设计应用。前面已经提到过,如果有1000个并发进程同时对一张表的同一个块进行扫描,那么要彻底解决“热”块问题就只能通过修改应用来解决。
利用已有的数据库技术,减少“热”块对系统性能的影响。减少“热”块对系统性能产生影响的一个核心思想就是让数据块中的数据尽可能地分散。一般来讲主要有以下几种分散数据的技术:
(1)从Oracle 9i开始,Oracle允许在同一个数据库中存在不同块大小的数据块,为了将数据尽可能地分散到不同的数据块中,可以考虑将数据存放在BLOCK SIZE较小的数据块中(如 2KB、4KB的数据块)。
(2)数据块的PCTFREE默认值为10%,即数据块中有10%的空间会留于UPDATE操作,为了将数据尽可能地分散到不同数据块,可以考虑将数据存放在PCTFREE较大的数据块中(如将PCTFREE设置为90)。
(3)表中添加固定大小的列,如,使用char(2000)增加行长度,进而使得数据分布到不同的数据块中。
Oracle至今没有提供一种特殊的语法以使创建表或者插入数据时可以指定数据存储到某个数据文件和数据块中,所以我们只能迂回地采用以上3种方法尽可能地将数据分布到不同数据块。但是,这3种方法在减少数据块争用的同时,却增加了管理数据块的负担。数据块数的增加意味着进程需要扫描块数的增加,意味着在BUFFER CACHE 中LATCH争用的增加。鱼和熊掌不可兼得,所以读者在使用以上技术时需要根据应用特点进行仔细的衡量和评估。
除了以上3种方法外,还可以使用以下常见的技术来解决数据块争用的问题:
(4&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值