您的位置:首页 > 数据库 > Oracle

Oracle内存缓冲区合理大小的判定方法

2009-07-14 23:52 363 查看
转贴部分内容,氡马自己总结了部分内容

【查看Oracle建议的缓冲区设置】

Oracle自身提供了一个缓冲区建议值的视图v$db_cache_advice,要查看Oracle对缓冲区的建议值使用如下SQL语句:

select block_size, size_for_estimate, size_factor, estd_physical_read_factor, estd_physical_reads from v$db_cache_advice;

例如得到如下结果:

SIZE_FOR_ESTIMATE SIZE_FACTOR ESTD_PHYSICAL_READ_FACTOR ESTD_PHYSICAL_READS

20 0.0893 6.1454 270840
40 0.1786 3.0632 135003
60 0.2679 2.4908 109775
80 0.3571 2.1411 94362
100 0.4464 1.9619 86464
120 0.5357 1.8235 80366
140 0.625 1.6081 70873
160 0.7143 1.5038 66275
180 0.8036 1.3957 61510
200 0.8929 1.1541 50861
220 0.9821 1.0089 44465
224 1 1 44072
240 1.0714 0.8524 37568
260 1.1607 0.8184 36068
280 1.25 0.7965 35103
300 1.3393 0.793 34948
320 1.4286 0.7908 34853
340 1.5179 0.7905 34841
360 1.6071 0.7905 34841
380 1.6964 0.7905 34841
400 1.7857 0.7873 34698

解释一下v$db_cache_advice的作用,Oracle利用这个视图对当前数据库db_cache_size大小提出一建议,提出了20个db_cache_size大小及相关的物理读的估计值,估计的db_cache_size大小的范围从当前的10%到200%,以10%为一个增加单位。
下面解释几个列的含义
size_for_estimate:估计的cache size大小
size_factor: 估计的cache size大小与当前大小的比值
estd_physical_reads:在估计的cache size大小情况下,会产生的物理读数量
estd_physical_read_factor:估计的物理读数量与当前物理读数量的比值。

从上面的数据中可以看到,当前db_cache_size为224M,其物理读为44072,增加cache size大小会减少物理读,当cache size到340M时,物理读的减少不再明显,因此db_cache_size大小为340M在目前情况下是一个合适的值。
由于这里用的是自动共享内存管理方式,应该增加sga_target,这样db_cache_size大小会相应增加,要增加sga_target要先增加sga_max_size。

【修改数据库参数方法】

在Oralce用户下,使用sqlplus "/as sysdba"登录,注意引号。

在提示符下输入show parameter则可以看到所有参数,如果要看一个具体参数,如db_cache_size则使用showparameter db_cache_size

如果要修改一个参数的值则使用:

ALTER SYSTEM SET sga_max_size=600M scope=spfile;

【与缓冲区有关数据库参数】

sga_max_size,限定SGA的大小

sga_target,设定SGA的实际大小

db_cache_size,设定Oracle内存缓冲区的大小
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: