从V$DB_CACHE_ADVICE中设置数据缓冲大小

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

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

19,010

3.64

37,460,786

182

22,812

2.50

25,668,196

212

26,614

1.74

17,850,847

243

30,416

1.33

13,720,149

273

34,218

1.13

11,583,180

304

38,020

1.00

10,282,475 Current Size

334

41,822

.93

9,515,878

364

45,624

.87

8,909,026

395

49,426

.83

8,495,039

424

53,228

.79

8,116,496

456

57,030

.76

7,824,764

486

60,832

.74

7,563,180

517

64,634

.71

7,311,729

547

68,436

.69

7,104,280

577

72,238

.67

6,895,122

608

76,040

.66

6,739,731

2x size

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有