日期:2014-05-17  浏览次数:21186 次

oracle11gR2 中 sga_target=0 然后shared_pool_size=0,db_8k_cache_size=0
oracle11gr2+系统在 windows service 2008 r2 enterprise
我很奇怪的是在查看参数的时候,第一是自动分配的sga_target=0没有启动 ,然后 shared_pool_size,db_cache_size value,db_block_buffers都等于0 ?
我不明白,这样不就影响到性能吗,还是说还有其他参数可以指定内存大小的。
接着查buffer cache命中率,结果如下:
select (1-(sum(decode(name, 'physical reads',value,0))/(sum(decode(name, 'db block gets',value,0))
  +sum(decode(name,'consistent gets',value,0))))) * 100 "Hit Ratio" from v$sysstat;
 Hit Ratio
98.4204183083562


求大神指教一下。

------解决方案--------------------
看一下v$sga_dynamic_components、
为0有可能是自动管理的,实际不是0
------解决方案--------------------
11g之后新增了一个参数memory_target
oracle根据这个参数动态分配SGA和PGA的大小。
------解决方案--------------------
探讨
谢谢楼上的几位。 

memory_target是自动分配SGA+PGA 的,SGA_target是自动分配SGA的内存。我看了一下memory_target是有值的20864M,但是sga_target=0。
是不是可以这么理解,memory_target已经管理了整个内存,包括分配sga下面的内存,所以可以不指定下面的缓存池的大小?? --是的。都是ORACLE自动管理的。
那么这个memory_target是在哪里设置的?……
--这个是在初始化参数里面设置的
那么我还能为shared_pool_size指定大小,还是只能设置shared_pool_reserved_size的值大小?
如果为共享池指定大小还算是自动管理范畴吗?
--在内存自动管理开启的情况下,不能为shared_pool_size指定大小