1.large_pool
large_pool用来分配大内存块,来处理比shared pool更大的内存,实际常常用来做备用池,用以缓解oracle对共享池和PGA区内存的使用压力,使用large_pool的对象主要有:
*多线程服务器MTS:在SGA的large_pool中分配UGA;
*语句的并行查询parallel exection:用作进程间的消息缓冲器;
*恢复管理器RMAN:备份时用作磁盘I/O缓冲器。
查看large_pool参数默认设置值,为0 则表示ASMM已开启
SQL> show parameter large_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
large_pool_size big integer 0
查看large_pool当前运行期间ASMM实际分配大小
SQL> select pool,sum(bytes) from v$sgastat group by pool;
POOL SUM(BYTES)
------------ ----------
352318320
shared pool 671093432
large pool 16777216 (16M)
java pool 33554432
2.java_pool
Oracle在内核中加入了对java的支持,该缓冲区转为java开发和应用所设,若不用java程序则无必要修改该缓冲区的默认大小。
查看java_pool参数默认设置值,为0则表示ASMM开启
SQL> show parameter java_pool;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_pool_size big integer 16M
查看java_pool当前运行期间ASMM实际分配大小
SQL> select pool,sum(bytes) from v$sgastat group by pool;
POOL SUM(BYTES)
------------ ----------
352318320
shared pool 671093432
large pool 16777216
java pool 33554432(32M)
3.streams_buffer
用于对流复制进行缓冲
查看streams_buffer大小
SQL> show parameter streams_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size big integer 0
4.redo_log_buffer
对数据库的任何修改都按顺序被记录在该缓冲区中,然后由LGWR进程根据条件将更改信息批量写入磁盘的redolog文件中,以节省磁盘IO,该缓冲不参与ASMM的动态管理,不能自动调整大小。
查看redo_log_buffer大小
SQL> show parameter log_buffer;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_buffer integer 14302208
或
SQL> select name,bytes from v$sgastat where name='log_buffer';
NAME BYTES
-------------------------- ----------
log_buffer 14749696
手动修改redo_log_buffer大小
SQL> select system set log_buffer=6000000 scope=spfile;(重启数据库生效)
SGA专题讲解:
Oracle-SGA → sga_target and sga_max_size
http://blog.csdn.net/together8/article/details/14087985