SGA_MAX_SIZE与SGA_TARGET

SGA_MAX_SIZE与SGA_TARGET

ID:38582485

大小:55.50 KB

页数:5页

时间:2019-06-15

SGA_MAX_SIZE与SGA_TARGET_第1页
SGA_MAX_SIZE与SGA_TARGET_第2页
SGA_MAX_SIZE与SGA_TARGET_第3页
SGA_MAX_SIZE与SGA_TARGET_第4页
SGA_MAX_SIZE与SGA_TARGET_第5页
资源描述:

《SGA_MAX_SIZE与SGA_TARGET》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Oracle 的SGA 包括以下几个部分,可以通过showsga 命令或者是通过查看v$sga 视图来查看SGA 的大概组成:17:39:48SQL>showsgaTotalSystemGlobalArea1048576000bytesFixedSize                  1223392bytesVariableSize             847250720bytesDatabaseBuffers          192937984bytesRedoBuffers                7163904bytes 17:42:05SQL>select*fromv

2、$sga;NAME                                   VALUE-------------------------------------------FixedSize                        1223392.00VariableSize                   847250720.00DatabaseBuffers                192937984.00RedoBuffers                      7163904.00从上面可以大致的看到sga 包括一个固定区,一个可变区,一个数据库缓存

3、和一个redo 缓存。这些是比较笼统的信息,具体的SGA 是由以下几个部分组成的:- 数据缓冲(BufferCache )- 共享池(SharedPool )- 大池(LargePool )-Java 池(JavaPool )- 流池(StreamsPool---10g 以后才有)- 重做日志缓冲(RedoLogBuffer )- 其他buffercaches (如KEEP,RECYCLE,andotherblocksizescache 等)-FixedSGAandotherinternalallocations 。其中,SharedPool 、JavaPool 、LargePool 和St

4、reamsPool 这几块内存区的大小是相应系统参数设置而改变的,所以有通称为可变SGA (VariableSGA )。最后一个fixedsga 部分,一般是在实例启动以后就固定在sga 中了,是不会发生变化的,这个部分的区域一般小于100k 。理解了SGA 的组成以后,下面就来解释一下有关设置SGA 大小的两个参数SGA_MAX_SIZE 和SGA_TARGET 的含义。SGA_MAX_SIZE     这个参数顾名思义,它用来控制SGA 使用虚拟内存 的最大大小,这里的虚拟内存的含义可能会有所模糊,先可以这样理解,就是Oracle 所能在内存中给SGA 分配的最大大小 。现在来解释一下我

5、这里“虚拟内存”的含义,确切的应该这样说:实际内存和虚拟内存。我们知道当OS 中实际内存不够使用的时候,OS 就会去使用虚拟内存。oracle 是运行与os 之上的一个系统软件,它也是一个程序,它所请求os 给它多少内存用来作为其sga (比方说Oracle 申请500M 内存用作SGA ,即SGA_MAX_SIZE=500M ),os 一般是不会在oracle 启动的时候就给它全部的实际内存,而可能只给200M 。随着程序的运行,Oracle 不断的需要内存,而假设计算机的所有实际内存只有500M ,那么很肯定的是OS 不可能把全部500M 实际内存分配给oracle 的sga ,可能也最

6、多就给了350M ,剩下的150M 使用虚拟内存。Oracle 的SGA 达到500M 的时候(即达到SGA_MAX_SIZE 指定的大小),实际上这个sga 由350M 实际内存和150M 的虚拟内存组成,如果这个时候Oracle 想继续申请内存给SGA 使用,那么OS 是不会再给其分配内存,因为它已经达到了SGA_MAX_SIZE 的最大值。这个例子,虽然比较极端,即使OS 实际上比方说有1G 内存,Oracle 的SGA 也未必全部由实际内存组成,可能是由400M 实际内存和100M 的虚拟内存组成,这是由操作系统的内存管理策略决定的。此时,很显然有个问题,假设我的机器物理内存(实际内

7、存)足够多,如何让Oracle 所申请的SGA 内存全部在物理内存中呢,因为假设使用了虚拟内存,必定会带来额外的PAGEIN/PAGEOUT 的I/O 操作,这是很不合算的。这个问题其实就是在物理内存中固定SGA 的问题,这要涉及到另外两个参数LOCK_SGA 和PRE_PAGE_SGA 以及具体操作系统是否支持内存锁定的问题了,对此在这不予讨论。因此可以简洁的这样说:当实例启动后,各个内存区只分配实例所需要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
相关文章
更多
相关标签