oracle内存分配与调整_第1页
oracle内存分配与调整_第2页
oracle内存分配与调整_第3页
oracle内存分配与调整_第4页
oracle内存分配与调整_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle内存分配与参数设置内存分配与参数设置 基本初始化参数介绍基本初始化参数介绍 内存分配与初始化参数的设置内存分配与初始化参数的设置 基本初始化参数的功能sga_max_size(SGA) : 说明 : 指定例程存活期间所占用的系统全局区的最大大小。 值范围 : 0 到各操作系统所允许的最大值。请注意, 由于该参数值的最小值在启动时已经调整完毕, 因而它无关紧要。 默认值 : 如果未指定值, sga_max_size 的默认值将与启动时 SGA 的最初大小 (比如说 X) 相同。该大小取决于 SGA 中各种池的大小, 如缓冲区高速缓存, 共享池, 大型池等。如果指定的值小于 X, 则所

2、使用的 sga_max_size 的值将为 X。也就是说, 它是 X 与用户指定的 sga_max_size 值两者之间的较大值。 pga_aggregate_target (PGA ): 说明 : 指定连接到例程的所有服务器进程的目标 PGA 总内存。请在启用自动设置工作区之前将此参数设置为一个正数。这部分内存不驻留在 SGA 中。数据库将此参数值用作它所使用的目标 PGA 内存量。设置此参数时, 要将 SGA 从可用于 Oracle 例程的系统内存总量中减去。然后可将剩余内存量分配给 pga_aggregate_target。 值范围 : 整数加字母 K, M 或 G, 以将此限值指定为千

3、字节, 兆字节或千兆字节。最小值为 10M, 最大值为 4000G 默认值 : 未指定, 表示完全禁用对工作区的自动优化。 processes : 说明 : 指定可同时连接到一个 Oracle Server 上的操作系统用户进程的最大数量。该值应允许执行所有后台进程, 如 :作业队列 (SNP) 进程和并行执行 (Pnnn) 进程。 值范围 : 6 到根据操作系统而定的一个值。 默认值 : 由 PARALLEL_MAX_SERVERS 确定 sessions : 说明 : 指定用户会话和系统会话的总量。默认数量大于 PROCESSES, 以允许递归会话。 值范围 : 任何整数值。 默认值 :

4、派生 (1.1 * PROCESSES + 5) 内存分配与初始化参数的设置内存分配与初始化参数的设置 SGA内参数设置内参数设置 Log_buffer Large_pool_size Java_pool_size shared_pool_size Data buffer Log_buffer对于日志缓冲区的大小设置,通常我觉得没有过多的建议,因为参考LGWR写的触发条件之后,我们会发现通常超过3M意义不是很大。作为一个正式系统,可能考虑先设置这部分为log_buffer=13M 大小,然后针对具体情况再调整。 Large_pool_size对于大缓冲池的设置,假如不使用MTS,建议在2030

5、M 足够了。这部分主要用来保存并行查询时候的一些信息,还有就是RMAN 在备份的时候可能会使用到。如果设置了MTS,则由于UGA部分要移入这里,则需要具体根据server process数量和相关会话内存参数的设置来综合考虑这部分大小的设置。 Java_pool_size假如数据库没有使用JAVA,我们通常认为保留1020M大小足够。事实上可以更少,甚至最少只需要32k,但具体跟安装数据库的时候的组件相关(比如http server)。shared_pool_size这是迄今为止最具有争议的一部分内存设置。按照很多文档的描述,这部分内容应该几乎和数据缓冲区差不多大小。但实际上情况却不是这样的。

6、首先我们要考究一个问题,那就是这部分内存的作用,它是为了缓存已经被解析过的SQL,而使其能被重用,不再解析。这样做的原因是因为,对于一个新的SQL(shared_pool 里面不存在已经解析的可用的相同的SQL),数据库将执行硬解析,这是一个很消耗资源的过程。而若已经存在,则进行的仅仅是软分析(在共享池中寻找相同SQL),这样消耗的资源大大减少。所以我们期望能多共享一些SQL,并且如果该参数设置不够大,经常会出现ora-04031错误,表示为了解析新的SQL,没有可用的足够大的连续空闲空间,这样自然我们期望该参数能大一些。但是该参数的增大,却也有负面的影响,因为需要维护共享的结构,内存的增大也

7、会使得SQL 的老化的代价更高,带来大量的管理的开销,所有这些可能会导致CPU 的严重问题。在一个充分使用绑定变量的比较大的系统shared_pool_size 的开销通常应该维持在300M 以内。除非系统使用了大量的存储过程、函数、包,比如oracle erp 这样的应用,可能会达到500M甚至更高。于是我们假定一个1G内存的系统,可能考虑设置该参数为100M,2G 的系统考虑设置为150M,8G 的系统可以考虑设置为200300M。 Data buffer现在我们来谈数据缓冲区,在确定了SGA 的大小并分配完了前面部分的内存后,其余的,都分配给这部分内存。通常,在允许的情况下,我们都尝试使

8、得这部分内存更大。这部分内存的作用主要是缓存 DB BLOCK,减少甚至避免从磁盘上获取数据,在8i中通常是由db_block_buffers*db_block_size 来决定大小的。如果我们设置了buffer_pool_keep 和buffer_pool_recycle,则应该加上后面这两部分内存的大小。实际操作中可以根据ORACLE提供的图形界面来设置前面介绍的那些参数(如下图)oracle内存分配可以参考下面的公式:OS使用内存使用内存+SGA+并发执行进程数并发执行进程数*(sort_area_size+hash_ara_size+2M) select value from v$sy

9、sstat where name =physical reads;VALUE-14764SQL select value from v$sysstat where name =physical reads direct;VALUE-50SQL select value from v$sysstat where name =physical reads direct (lob);VALUE-0SQL select value from v$sysstat where name =consistent gets;VALUE-167763SQL select value from v$sysstat where name = db block gets;VALUE-14305这里命中率的计算应该是令 x = physical reads direct + physical reads direct (lob)命中率 =100 - ( physical reads - x) / (consistent gets + db block gets - x)*100通常如果发现命中率低于90%,则应该调整应用可可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论