自动共享内存管理,10g中,只要设置SGA_TARGET参数大于0,就可以启用自动共享内存管理,如果该参数为0,则禁用自动共享内存管理。
自动共享内存管理,包括以下SGA的组成部分:
db_cache_size
shared_pool_size
large_pool_size
java_pool_size
以下SGA的组成部分,需要手动调节:
log buffer
keey/recycle buffer pool
非标准块的buffer cache
streams pool
ASM存储管理的buffer cache
从SGA_TARGET中分配内存的一些重要规则:
1.SGA_TARGET大小需要在SGA_MAX_SIZE范围内,如果需要设置得更大,同时也需要增大SGA_MAX_SIZE。
2.SGA_TARGET中要扣除fixed-size SGA结构的开销
3.需要扣除一些需要手动设置的SGA区大小,例如log_buffer,keep/recycle池,这些部分也在SGA中。
4.剩下的共享内存在可动态分配的4个组成部分之间分配。
5.如果自动调节的参数分配了非0值,那么该值就是自动调节时的最小值。
6.自动调节的参数,会在spfile中生成一个最小值,以便下次重启时,快速地调节成合适系统运行的情况。
通过V$SGA_DYNAMIC_COMPONENTS视图,可以查看到自动调节部分当前的内存大小。
SQL> select component,current_size from V$SGA_DYNAMIC_COMPONENTS;
COMPONENT CURRENT_SIZE
------------------------------ ------------
shared pool 138412032
large pool 4194304
java pool 4194304
streams pool 0
DEFAULT buffer cache 373293056
KEEP buffer cache 0
RECYCLE buffer cache 0
DEFAULT 2K buffer cache 0
DEFAULT 4K buffer cache 0
DEFAULT 8K buffer cache 0
DEFAULT 16K buffer cache 0
DEFAULT 32K buffer cache 0
ASM Buffer Cache 0
阅读(815) | 评论(0) | 转发(0) |