06-10
21

oracle体系结构分析 (SGA篇)

http://huac.blogbus.com/files/1161445565.jpg

一、内存分为两类: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区调优是关键。



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 体系结构 SGA
相关日志:
评论: 0 | 引用: 0 | 查看次数: 653
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭