PGA 内存自动管理

PGA 内存自动管理
SQL 工作区可以是自动的、全局的管理。DBA 只要设置参数 PGA_AGGREGATE_TARGET 给一个实例的 PGA 内存指定总的大小。
设置这个参数后,Oracle 将它作为一个总的全局限制值,尽量使所有 Oracle 服务进程的 PGA 内存总数不超过这个值。
在这个参数出现之前,DBA 要调整参数SORT_AREA_SIZE、 HASH_AREA_SIZE, 、 BITMAP_MERGE_AREA_SIZE 和
CREATE_BITMAP_AREA_SIZE(关于这些参数,我们会在后面介绍),使性能和 PGA 内存消耗最佳。对这些参数的调整是非常麻烦
的,因为即要考虑所有相关的操作,使工作区适合它们输入数据大小,又要使 PGA 内存不消耗过大导致系统整体性能下降。
9i 以后,通过设置了参数 PGA_AGGREGATE_TARGET,使所有会话的工作区的大小都是自动分配。同时,所有*_AREA_SIZE 参
数都会失效。在任何时候,实例中可用于工作区的 PGA 内存总数都是基于参数 PGA_AGGREGATE_TARGET 的。工作区内存总数等于
参数 PGA_AGGREGATE_TARGET 的值减去系统其他组件(如分配给会话的 PGA 内存)的内存消耗。分配给 Oracle 进程的 PGA 内存
大小是根据它们对内存的需求情况来的。
参数 WORKAREA_SIZE_POLICY 决定是否使用 PGA_AGGREGATE_TARGET 来管理 PGA 内存。它有两个值:AUTO 和 MANUAL。默认是
AUTO,即使用 PGA_AGGREGATE_TARGET 来管理 PGA 内存。其实,从参数 WORKAREA_SIZE_POLICY 的名字上可以看出,Oracle 的 PGA
内存自动管理只会调整工作区部分,而非工作区部分(固定 PGA 区)则不会受影响。
还有注意一点就是:10g 之前,PGA_AGGREGATE_TARGET 只在专用服务模式下生效。而 10g 以后,PGA 内存自动管理在专有服
务模式(Dedicated Server)和 MTS 下都有效。另外,9i 在 OpenVMS 系统上还不支持 PGA 内存自动管理,但 10g支持。
设置了 PGA_AGGREGATE_TARGET 以后,每个进程 PGA 内存的大小也是受限制的:
o<wbr> 串行操作时,每个进程可用的 PGA 内存为MIN(PGA_AGGREGATE_TARGET * 5%, _pga_max_size/2),其中隐含参数<br> _pga_max_size的默认值是200M,同样不建议修改它。<br> o<wbr> 并行操作时,并行语句可用的PGA内存为PGA_AGGREGATE_TARGET * 30% / DOP (Degree Of Parallelism 并行度) </wbr></wbr>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值