oracle的内存结构

oracle的内存结构由两部分组成:sga(system global area),pga(program global area).

SGA:在一个实例启动时分配,是实例的组成部分。

PGA:一个服务进程启动就分配了一个PGA.(多个)。

 

SGA可以占据内存的80%

 

linux命令:ipcs

sga组成:share pool,database buffer cache,redolog buffer,large pool,java pool

查看sga : show sga;

动态调整SGA_MAX_SIZE.

SGA分配内存的基本单位granules.

对于sga小于128M,granules等于4M

对于sga大于128M,granules等于16M

 

sga是个连续的内存区。

select component,granule_size from v$sga_dynamic_component;

 

DB_CACHE_SIZE,LOG_BUFFER_SIZE,SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE.

 

指定sga最大尺寸后,各个部件的尺寸会自动分配,自动调整。

shared pool:存储解析好的sql。包含libarary cache,data dictionary cache.

libarary cache:存储经过解析编译过的sql area和pl/sql area.

data dictionary cache:存储数据库控制信息。

 

database buffer cache:包含了来自于数据文件里面的数据,以及即将写到数据文件里面的数据。

                                       DB_CACHE_SIZE,DB_KEEP_CACHE_SIZE,DB_RECYCLE_CACHE_SIZE

ALTER SYSTEM SET DB_CACHE_SIZE=96M;

通过DB_CACHE_ADVICE设定是否监控,监控信息查V$DB_CACHE_ADVICE

 

redo log buffer:一次数据库改变就有一条redo entries。

 

large pool:并行处理,IO操作,arm备份。

 

jave pool:跟java打交道的。

 

你可能感兴趣的:(oracle)