Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38691
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-25 14:44
文章分类
文章存档

2015年(11)

我的朋友

分类: Oracle

2015-10-30 15:13:00

Oracle中内存的设置分为两种:自动管理内存,手动管理内存。

本文摘自 涂抹Oracle三思笔记一步一步学习Oracle 。

一、自动管理
    自动管理只需要分别设置SGA和PGA即可。这两个值分别对应参数SGA_TARGET和PGA_AGGREGATE_TARGET,Oracle退出SGA_TARGET的本意是简化操作,提高易用性,提升性能,在某种程度上确实达到了这一目标。对中小型数据库可以让Oracle自动分配SGA。
  关于SGA、PGA于系统内存三者的关联,目前有一个相对通用的计算规则可供参考:

⊙ 对于OLTP数据库,SGA=系统内存*70%*80%,PGA=SGA*(10%~20%)。
⊙ 对于OLAP数据库,SGA=系统内存*80%*60%,PGA=SGA*(45%~65%)。

注意:对于32bit平台,默认情况下SGA最大可用内存有1.7GB的限制,也就是说在32bit平台中,即使为SGA分配了超过这个值的内存也是不可用的。
   
    对于一些超大型的数据库服务器都拥有数十G和百G的内存,这时候自动分配内存的效果不一定是最优的。

二、手动管理
⊙ 共享池:用来存放Library Cache,编译过的SQL、PL/SQL等内容,不能过大,否则有可能造成自身管理上负担,带来反效果。通常在300~500M之间比较适当,对应初始化参数值SHARED_POOL_SIZE。

缓冲区高速缓存:数据库中数据从磁盘中读取后就存放在这个内存中,我们都知道在内存中数据的读写要比在磁盘中读写I/O速度要快N多倍。因此该值越大越好。所有空闲内存都可以分配给它。对应初始化参数:DB_CACHE_SIZE。

⊙ Java池: 如果数据库没java procedure或者没有选择Oracle JVM组件,该值设置为0也可以。如果有的话,该值也不需要很大。对应初始化参数:JAVA_POOL_SIZE。

⊙ 大型池:
主要应用于直接路径的导入和导出、RMAN备份等。相对来说应用范围有限,不需要很大,一般在100M~200M即可。对应初始化参数:LARGE_POOL_SIZE。

⊙ PGA大小:对应初始化参数 PGA_AGGREGATE_TARGET

阅读(1973) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~