【Oracle数据库之体系结构SGA】

1.shared pool 共享池

设置大小的参数:SHARED_POOL_SIZE

包含:

library cahce 库高速缓存区

大小由共享池决定。

包含:SQL 语句和SQLPLUS 文本,分析代码,执行计划

存储目的:与性能有关。

当两个语句相同的时候不需要重新分析,使用相同的执行计划即可。

管理方法:采用 LRU (最近使用算法)least recent used 当空间不足的时候,使用LRU。

结构: SQL 区域、PL/SQL 区域

data dictionary cache 字典高速缓存区

内容:最近最多使用的数据字典信息

作用:为了能够在分析的时候所需要的字典信息能在内存中找到,避免使用物理I/O。

管理方法:采用 LRU (最近使用算法)

ALTER SYSTEM SET  SHARED_POOL_SIZE=64M

 

DATA DICTIONARY CACHE

(数据字典高速缓存)

1数据库中最近使用的定义的集合

2包含数据库文件,表,索引,列,用户,权限和其他的数据库对象相关信息

3在语法分析阶段,服务器进程会在数据字典中查找用于对象解析和验证访问的信息

4将数据字典信息高速缓存到内存中,可缩短查询和DML的响应时间

5大小由共享池的大小决定

 

2.database buffer cache

数据库高速缓存区

单位:块。

内容:最近最常数据块

作用:减少物理I/O,提高性能

参数:DB_BLOCK_SIZE 决定主数据块的大小。

会影响性能;

设置后不允许修改;

管理方法:采用 LRU (最近使用算法)

由独立的自缓冲区组成:

DB_CACHE_SIZE

CB_KEEP_CACHE_SIZE

DB_RECYCLE_CACHE_SIZE

可以通过ALTER SYSTEM 命令动态增加或收缩:

ALTER SYSTEM SET DB_CACHE_SIZE =96M;

3.redo log buffer

重做日志缓冲区

记录了对数据块所作的所有修改。

作用:数据库的恢复

大小由LOG_BUFFER 决定。

顺序单条写入,批量写出到文件。

某个时候(三种情况;

一、日志缓冲区中的记录达到1M

二、每隔3秒

三、日志缓冲区已经用了三分之一,满足其中任意一项就可以)把日志缓冲区中的这些记录写到在线日志中去。

alter system switch logfile

4.java pool

java

可选

java_pool_size 大小

5.large pool

大池

可选

减轻共享池的负担。

被用于:

1.在共享服务器中的会话的内存需求(UGA);

2.I/O 辅助;

3.备份恢复操作或RMAN;

4.并行执行的信息缓冲区;

large_pool_size 大小

6.Stream池 
为了stream应用而分配的内存空间,高级复制技术一部分。

猜你喜欢

转载自gaojingsong.iteye.com/blog/2282983