oracle内存管理

Oracle内存管理--从8i,9i,10g到11g
Oracle把其所管理的内存分为SGA和PGA

SGA=((db_block_buffers*blocksize)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB。PGA主要包括Sort_area_size, hash_area_size等

Buffer cache ( DB_CACHE_SIZE)--缓冲数据L准确的定义是用来缓存“数据块”。简单的说就是用来缓存从磁盘上读来的数据

Shared pool ( SHARED _POOL_SIZE)--缓冲SQL:用来保留解析的SQL、或者PL/SQL。比方说,当SQL第一次执行时,Oracle把解析的执行计划保存在 Shared pool中,以后再执行相同的SQL,就无须重新解析了。(也就是SQL必须使用绑定变量的道理)

Large pool (LARGE_POOL_SIZE) --缓冲备份还原时候的I/O:用于“shared server system”的“session memory”, “parallel execution”以及备份还原时候作为磁盘的I/O缓冲。

从Oracle 8i到9i--9i解决了PGA的自动管理。
从9i到10g--10g解决了SGA的自动管理。
从10g到11g--11g解决了整个内存(SGA+PGA)的自动管理。

通过Oracle11g的五种内存管理方式来理解Oracle内存管理的进化

1、自动内存管理(默认Oracle11g实例采取的方式):只需要显式的设置MEMORY_TARGET,无须其他内存参数设置。
2、自动共享内存管理(Oracle10g采取的内存管理方式):显式的指定SGA_TARGET的值,无须设定SGA内部的值。
3、手工共享内存管理(Oracle9i采取的内存管理方式):SGA_TARGET 与 MEMORY_TARGET 都要设置为 0. 然后手工设定 share_pool_size 、db_cache_size 等 sga 参数。
4、自动PGA内存管理(Oracle9i引入的方式):这里只需要设置PGA_AGGREGATE_TARGET 的值。当然,如果要做到精细控制而切换到手动PGA内存管理模式,需要设定WORKAREA_SIZE_POLICY = manual (默认为 AUTO),再另行设置SORT_AREA_SIZE等值。
5、手动 PGA 管理(Oracle8i所能够采取的方式):在高版本中需要设置WORKAREA_SIZE_POLICY = manual ,然后分别指定 SORT_AREA_SIZE 等 PGA 相关的参数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值