4.4.2 自动共享内存管理

自动共享内存管理用来对SGA进行自动设置。只要通过初始化参数SGA_TARGET和SGA_MAX_SIZE指定SGA的最大大小,那么SGA中的各种缓冲区大小就可以根据需要自动确定,可以说,这是一种半自动化的内存管理方法。需要注意的是,重做日志缓冲区、非标准块对应的高速缓存、KEEP缓冲池和RECYCLE缓冲区的大小仍需自己设置。

为了使用自动共享内存管理,首先为初始化参数SGA_TARGET和SGA_MAX_SIZE指定适当的大小,然后把以下初始化参数的值设为0。


MEMORY_MAX_TARGET

MEMORY_TARGET

SHARED_POOL_SIZE

LARGE_POOL_SIZE

JAVA_POOL_SIZE

DB_CACHE_SIZE

STREAMS_POOL_SIZE


而以下初始化参数仍然需要进行适当的设置:


LOG_BUFFER

DB_KEEP_CACHE_SIZE

DB_RECYCLE_CACHE_SIZE

DB_nK_CACHE_SIZE


如果需要了解SGA中每种缓冲区的实际大小,可以查询动态性能视图v$sgainfo。