Oracle从9i开始引入了pga自动内存管理,从10g引入了sga自动内存管理(automatic shared memory management,ASSM),从11g引入了自动内存管理(automatic memory management,AMM)。
1、要启动pga自动内存管理,需要使用两个参数:
workarea_size_policy=auto(默认值)
pga_aggregate_target=**
2、在使用SGA自动管理时,实例将监视各个SGA组件的内存需求,并根据需要将内存分配给组件。一般规则是,分配给大池、java池、流池的内存不可转让,分配给共享池、数据库缓冲区缓存的内存是可以转让的,而日志缓冲区(log_buffer)的大小在启动时就固定下来,无法进行自动管理。
手动管理SGA的参数有
shared_pool_size
db_cache_size
large_pool_size
java_pool_size
streams_pool_size
要启用SGA自动管理,需要保留以上参数的默认值(或者将其设置为0),并设置一个参数
sga_target
如果设置了任何手动设置的参数,则给定的值将作为最小大小(ASSM不会使组件的大小低于此值),日志缓冲区包含在sga_target中。
3、自动内存管理可以根据需要再SGA和PGA之间转换内存,要启用自动内存管理,需要设置两个参数:
memory_target
memory_max_target(为静态参数,调整后需要重启实例)
如果启用了自动内存管理,又设置了pga_aggregate_target或sga_target,则指定的值将是最小大小
1、要启动pga自动内存管理,需要使用两个参数:
workarea_size_policy=auto(默认值)
pga_aggregate_target=**
2、在使用SGA自动管理时,实例将监视各个SGA组件的内存需求,并根据需要将内存分配给组件。一般规则是,分配给大池、java池、流池的内存不可转让,分配给共享池、数据库缓冲区缓存的内存是可以转让的,而日志缓冲区(log_buffer)的大小在启动时就固定下来,无法进行自动管理。
手动管理SGA的参数有
shared_pool_size
db_cache_size
large_pool_size
java_pool_size
streams_pool_size
要启用SGA自动管理,需要保留以上参数的默认值(或者将其设置为0),并设置一个参数
sga_target
如果设置了任何手动设置的参数,则给定的值将作为最小大小(ASSM不会使组件的大小低于此值),日志缓冲区包含在sga_target中。
3、自动内存管理可以根据需要再SGA和PGA之间转换内存,要启用自动内存管理,需要设置两个参数:
memory_target
memory_max_target(为静态参数,调整后需要重启实例)
如果启用了自动内存管理,又设置了pga_aggregate_target或sga_target,则指定的值将是最小大小
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26194851/viewspace-709116/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26194851/viewspace-709116/