Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97112
  • 博文数量: 45
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 395
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-15 10:29
文章分类

全部博文(45)

文章存档

2011年(15)

2010年(30)

我的朋友

分类: Oracle

2011-05-19 16:22:07

  如果PGA_AGGREGATE_TARGET 被设置了,那么默认识AUTO的。
如果PGA_AGGREGATE_TARGET没有被设置,那么默认识MANUAL的。
 
 
,如果workarea_size_policy=manual那么pga_aggregate_target将会不被使用,而是使用响应的sort_area_size,hash_area_size等参数.
如果workarea_size_policy=auto的话那么就会使用pga_aggregate_target而不使用其他的sort_area_size,hash_area_size等参数.
 

需要设置两个基本点参数 :

WORKAREA_SIZE_POLICY=AUTO(默认AUTO)
PGA_AGGREGATE_TARGET--总的PGA的大小

注意,9I的shared server连接需要明确设置SORT_AREA_SIZE 和 HASH_AREA_SIZE,也就是说不能用自动管理模式。10G则无此限制。

PGA_AGGREGATE_TARGET是一个上限(理论上的最大值,PL/SQL就很容易超过),ORACLE启动时并不分配那么多,你甚至可以设置大于
物理MEM的大小(生产库不要这么做呀,要设置pga_aggregate_target+sga

一个SESSION可能有多个sort,hash的workarea,每一个workarea最多会用到5%或100M(由两个隐藏参数控制),因此如果预计每个
sort,hash的workarea是5M,应该设置PGA_AGGREGATE_TARGET成100M。但是,随着用户的增加或工作量的增大,给每个workarea的
容量可能会减少,因为有总量PGA_AGGREGATE_TARGET的限制,比如需要100个workarea,那么每个只能分配到1M。parallel query
会用到最多30%(由隐藏参数控制)的PGA_AGGREGATE_TARGET,每一个parallel query的PIECE会分配相应的30%,也就是
parallel query可能会用到30M,10个PARALLEL,那么每个用3M。这也就是建议用auto管理的原因,一个系统通常workload,
session是随时间变化的,早上可能3个用户,中午可能300个用户,所以用固定sort,hash的参数是不合时宜的.自动管理才可以实现
在用户并发少的时候分配更多的内存,在并发多的时候照顾大众,分配少的内存。ORACLE 9.2以后有了PGA advisory

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