oracle SGA(11g)

来源:互联网 发布:linux压缩目录命令 编辑:程序博客网 时间:2024/05/29 03:16


1. buffer cache


2.redo log buffer


3.shared pool  包含 library cache


4.java pool


5.large pool(optional)


6.streams pool


7.data dictionary cache


8.other miscellaneous information



10g参数:

db_cache_size cache of stardard blocks的大小

log_buffer 分配给redo log buffer的字节数

shared_pool_size 给配共享sql或者pl/sql语句的字节大小

large_pool_size large_pool的大小;默认0

java_pool_size  java pool的大小


1.AMM Auto Memory Management

指定实例内存大小,自动分配给SGA和PGA。

2.ASMM Auto Shared Memory Management

部分自动化的。当你设定SGA目标值大小后,你可以选择设定一个总的PGA目标大小,或者分别管理PGA工作区。英文不好,不能理解,付上原文:

This management mode is partially automated. You set a target size for the SGA and then have the option of setting an aggregate target size for the PGA or managing PGA work areas individually.

3.Manual memory management

可以通过参数手工分别制定SGA和PGA个部件的大小。


UGA: user global area

session variables

OLAP pool

当session装载一个PL/SQL package到内存,那么UGA就获取(contain)这个包的详情(package state),即存储在session variables的值的集合。

OLAP Pool用来管理OLAP数据块,OLAP session连接时被分配,断开时释放。

在共享服务器模式中,UGA在SGA中,因为PGA只会分配给一个进程;在专有服务器模式中,UGA在PGA中。


PGA:program golbal area

PGA是分配给operating processes or thread的内存,这些process或者thread之间是互不共享的。

PGA可能出现的内容(并非每次出现):

Sort AreaHash Area Bitmap Merge Area       --------称为 SQL work areas

Session Memory        persistent area         Runtime Area   --------后面2个称为 private sql area

private SQL area 包含解析过多sql语句和其他一些session信息。当服务进程执行SQL或者PL/SQL代码, private SQL area会被用来存储绑定变量、query execution state information, and query execution work areas。

private SQL area, which is in the UGA。

shared SQL area, which stores execution plans in the SGA。



to be continued...