-- 优化Oracle内存结构 -- 优化SGA(System Global Area ) -- SGA = data buffer + 用于存放从数据文件读入的数据块,可以尽可能的大 -- shared_pool_size + 通常设为500M左右,不应超过700M 用于保存数据字典及当前执行的sql语句和存储过程 -- log_buffer + 通常设为512K到1M 用于缓存用户更新的数据,不需太大 -- java_pool_size + 通常设置为16M。 -- large_pool_size 通常设置为是16M-64M -- 优化PGA (Program Global Area ) 为每个session单独分配 -- sort_area_size 默认64K,通常设置为128K到512K -- hash_area_size 不做配置,是根据2*sort_area_size计算得到 select name,value/1024||'KB',display_value,isdefault,isses_modifiable,issys_modifiable,isinstance_modifiable,description from v$parameter where name in ('data buffer','shared_pool_size','log_buffer','java_pool_size','large_pool_size','buffer','sort_area_size','hash_area_size','sga_target','db_cache_size'); -- 对于自动管理的SGA,其部分参数默认值为0,查询真实大小 SELECT pool,sum(bytes)/1024/1024 || 'MB' FROM v$sgastat where pool is not null group by pool; -- 查询系统参数 SHOW ParaMETERS SHARED_POOL_SIZE; -- 修改系统参数 ALTER SYstem SET SHARED_POOL_SIZE='500M' ScopE=BOTH ; -- 对于自动内存管理的情况,可以通过创建spfile来手动管理,创建成功后会在database目录下生成<SID>.ora文件 create pfile from spfile; select component,current_size/1024/1024,min_size/1024/1024,max_size/1024/1024,user_specified_size/1024/1024 from v$sga_dynamic_components where component='shared pool';