日期:2013-03-13 浏览次数:20418 次
Oracle 9i引入了一个新的途径来预测数据缓冲cache中附加数据缓存的所带来的好处的多少。V$DB_CACHE_ADVICE显示了20个可能的缓冲cache大小的“脱靶”率(范围从当前大小的10%到200%)。由于Oracle 9i中你需求维护五个分开的数据缓冲cache,因此这个特性非常重要。这些数据缓冲包括:
DEFAULT池
KEEP池
RECYCLE池
2K数据缓冲
4K数据缓冲
8K数据缓冲
16K数据缓冲
32K数据缓冲
警告:当你把DBA_CACHE_ADVICE设置为ON时,Oracle会从共享的池中“窃取”RAM页面,这往往严重影响到了库cache。例如,如果设置DB_CACHE_SIZE为500m,Oracle就会从共享池中窃取相当多数量的RAM空间。为了避免这个问题,我们应该在INIT.ORA文件中把DBA设置为DB_CACHE_ADVICE=READY。这样,Oracle会在数据库启动时预分配RAM内存。
为了演示cache建议是如何任务的,让我们看看STATSPACK报告来看看在哪些时间数据缓冲命中率低于90%。
***********************************************************
当数据缓冲命中率低于90%时,你就应该
考虑添加DB_CACHE_SIZE参数了。
***********************************************************
yr. mody Hr. Name bhr
------------- -------- -----
2001-01-27 09 DEFAULT 45
2001-01-28 09 RECYCLE 41
2001-01-29 10 DEFAULT 36
2001-01-30 09 DEFAULT 28
2001-02-02 10 DEFAULT 83
依据上面的输出信息,我们可以在每天上午8点到9点之间添加DB_CACHE_SIZE,从PGA_AGGREGATE_TARGET中窃取RAM空间。
下面我们看看利用了DB_CACHE_ADVICE之后的输出。下表给出了添加了新的数据缓冲后对磁盘I/O减少的估量值的全部信息。
Estd Phys Estd Phys
Cache Size (MB) Buffers Read Factor Reads
---------------- ------------ ----------- ------------
30 3,802 18.70 192,317,943 10% size
60 7,604 12.83 131,949,536
91 11,406 7.38 75,865,861
121 15,208 4.97 51,111,658
152 &nbs