sga的组成 简述oracle_oracle体系结构分析 (SGA篇)

来自:程序员启示录

一、内存分为两类:SGA与PGA

1.SGA(system global area)系统全局共享区,供oracle使用。

2。PGA,供用户使用。

安装时候默认为:数据仓库类型安装,此种安装属少用户多内存模式。另一种安装模式为事物处理类型安装,此种安装为多用户少内存模式,可手动设置。

内存使用说明,ORCALE消耗内存比例大约是物理内存的1/2~2/3。WINOWS下建议设置为1/2,UNIX/LINUX下设置2/3。

下面是SGA中的共享池(shared pool)中中各个模块的介绍。

① SQL语句缓冲区(library cache)

先说明SQL语句处理过程:

传入SQL语句——>在SQL语句缓冲区中对比(无)——>分析——>执行

传入SQL语句——>在SQL语句缓冲区中对比(有)——>执行

注意分析方法,同一条SQL语句,如有空格数不同,大小写不同,系统都会重新进行分析。视为不同的SQL语句。所以团队中指定统一写法,实质上是种对数据库调优的做法。

SQL语句缓冲区分为3个部分:常用SQL语句区;普通SQL语句区;不常用语句区。根据LRU算法,根据执行次数来对SQL语句分别进行放入。再不常用语句区的SQL语句可能会被逐出。

② 数据字典缓冲区(Date Dictionary Cache)

③ 块缓冲区高速缓存 (Datebase buffer Cache)

作用:为读取硬盘中的数据而设。因为从内存中读取比硬盘中读取要快得多。

此缓冲区分为三部分:Defarlt pool;Keep pool;Recysle pool.

Oracle本身会在此做自动优化,管理员也可根据内存大小手动设置把表加入此缓冲区。(此缓冲区的设置对ORCALE性能调优很关键)

④ 重做日志缓冲区 (Reclo Log Buffer)

用户在作DML类(如insert,update,delete)语句操作时,系统会把旧的数据放入重做日志缓冲区,便于数据恢复。重做日志缓冲区有三个大模块,每一模块分为2、3个相同的文件,操作时进行同步式写入。目的为了系统安全性考虑,如1个文件丢失不会影响到系统恢复。此缓冲区有固定大小,默认大写为300MB,当数据写满1~3大模块的情况下,会从循环回1模块做覆盖写入。

所以如果DML操作较多的工作环境下,可把此区做大。

⑤ Java池 (Java pool)

此区在8i之后才有。

⑥ 大池 (Large pool)

处理大块操作。如rmain,recover manager (备份、恢复等工作)

PS:在做orcale性能调优时,关键做3、4、1缓冲区的调优。3区调优是关键。

阅读(1111) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值