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