首页 > 代码库 > Oracle 内存管理

Oracle 内存管理

--内存分配
建库时可以先分配系统内存的50%-80%给Oracle,后期根据业务再进行调整。
SGA、PGA分配比例:
OLTP:SGA %80 , PGA %20
OLAP:SGA %50 , PGA %50
混合:SGA %60 , PGA %40


--sga自动管理
statistics_level 值设置为 typical 或 all,启动 sga 自动管理。
给定 sga_target 一个总的数值。


--sga手动管理
设置 sga_target=0 ,设置相关组件大小:
java_pool_size                      
large_pool_size                      
shared_pool_size                     
streams_pool_size                   
db_cache_size                       
log_buffer              --貌似不能直接设置,要用pfile设置


SQL> alter system set sga_target=0 scope=spfile;

System altered.

SQL> alter system set java_pool_size=4M scope=spfile;

System altered.

SQL> alter system set large_pool_size=4M scope=spfile;

System altered.

SQL> alter system set shared_pool_size=136M scope=spfile;

System altered.

SQL> alter system set db_cache_size=352M scope=spfile;

System altered.

关闭并重启数据库
                       
--pga自动管理
workarea_size_policy 值设置为 auto 时,启用 pga 自动管理
给定 pga_aggregate_target 一个总的数值


oracle 11g两个参数
memory_target    用户自动内存管理(sga和pga)
memory_max_size  自动内存管理时候的一个目标值,实际可能超出该值

Oracle 内存管理