li
  当前位置:主页 > 性能优化 > 文章内容
li
PGA:关于pga_aggregate_target的设置讨论
来源: www.ixdba.net  作者: www.ixdba.net    时间:2007-12-21   阅读:3  

supers123

workarea_size_policy 设置成auto ,pga_aggregate_target 这个变量设置的值有实际意义么??这个参数的默认值25165824 bytes 是不是太少了, 但是这样的设置很多系统跑起来也没问题,是不是系统使用的内存可以超过这个值.有没有上限呢,比如超过多少后就不能再扩展了?
IXDBA.NET社区论坛
  
还有关于单个用户连接占用的内存数量的计算方法是不是可以从v$sesstat v$process 表中大致的估算出.如何计算向对准确呢?如果某个查寻遇到非常大的排序操作,这个查询在使用到多少pga_aggregate_target 指定的内存后进行磁盘排序呢

eygle

pga_aggregate_target 设置的是个期望值如果pga_aggregate_target 的设置,不足以供不可调整部分使用,就会扩展,如果 workarea_size_policy 设置成auto 那么你应该相应设置 PGA_AGGREGATE_TARGET
PGA
内存主要分为两部分
Untunable Memory Size + Tunable Memory Size
你应该设置
Untunable Memory Size + Tunable Memory Size <=PGA_AGGREGATE_TARGET
如果Untunable Memory Size > PGA_AGGREGATE_TARGET
那么Oracle会超出PGA_AGGREGATE_TARGET 的设置
至于超出部分怎么分配内存,我没有仔细研究过
不过估计跟workarea executions - optimal有关应该是optimal size的一个函数实际上对于单个进程
Untunable Memory Size > PGA_AGGREGATE_TARGET
这种状况是不可能出现的。

至于进程PGA你可以查询:V$PROCESS
我想以下字段是你关心的
PGA_USED_MEM, PGA_ALLOC_MEM AND PGA_MAX_MEM

Lyra

pga_aggregate_target此参数是指你的所有连接可使用的内存总量;每个连接使用的内存包含:此连接的SQL语句中的绑定变量(类似于C程序中的局部变量,所以在Oracle中也称此部分为stack),还有语句的一些句柄信息;以及此语句排序操作所用到的内存区。

其中消耗内存最大的就是排序区;其中排序区在使用时申请,使用完毕即释放.
因此你所需要的排序区可如下估算:单个连接需要4M*同时运行的最大连接数。
pga_aggregate_target的大小只要略大于此估算即可.

yumail312

那么排序区就等于是eygle指的tunable memory size,其他部分如bind variablehandle都属于untunable memory size?不知理解的对否!
BTW:9i
上为何设置了pga_aggregate_target,sort_area_size就不起作用了呢?那么是否可以只设置二者之一?
另外:我的pga_aggregate_target=0,怎么还是要为连接分配pga值呢?

Lyra

关于以tunable memory sizeuntunable memory size的划分PGA,我没有研究过.pga_aggregate_target的值非0,表示你指定了预期PGA的最大值,这样sort_area_size就不起作用了,这是Oracle9i才有的特性,其目的就是不让用户去管理更为底层的PGA分配,而是让用户指定个整体宏观值,而让Oracle自己去管理底层的分配,这样管理起来就方便,而且性能也会提高,毕竟系统会比用户更了解自己对内存的需求。这可能是Oracle的一个发展趋势;另外为了保持向后兼容,也保留了sort_area_size参数,这只有在pga_aggregate_target=0的情况下才有意义。

supers123

lyra老兄说的4M是怎么算出来的,我怎么查看v$process处理用户的单个process 只有400k左右呢,还要加上哪些内存使用呢?

Lyra

:这是比较合理的上限值;当然如果你的内存较小,这个值也可估计的小些。你所看到的400k仅是些进程所消耗的要内存;象排序区等是不包含在内的。

Xzh2000

9i以后的版本,没有必要将PGA搞的那么清楚,只需要分析v$pgastat,然后调整PGAOK啦。




  上一篇: 我的一个总结:检查点SCN深入研究   下一篇: 强烈推荐:ORACLE学习笔记--性能优...
li
 §相关评论  
 热点文章
·oracle优化:oracle诊断性能问
·我的一个总结:检查点SCN深入研
·数据库物理分布设计
·关于HWM的一点研究
·Oracle9iR2 Data Guard的保护模
·利用冷备创建standby
·Latch与lock示疑
·ORACLE SQL性能优化系列 (一)
·解读oracle控制文件
·PGA:关于pga_aggregate_target
·强烈推荐:ORACLE学习笔记--性能
li
 编辑推荐
·oracle优化:oracle诊断性能问
·我的一个总结:检查点SCN深入研
·数据库物理分布设计
·关于HWM的一点研究
·Oracle9iR2 Data Guard的保护模
·利用冷备创建standby
·Latch与lock示疑
·ORACLE SQL性能优化系列 (一)
·解读oracle控制文件
·PGA:关于pga_aggregate_target
·强烈推荐:ORACLE学习笔记--性能
li
 相关篇章
·我的一个总结:检查点SCN深入研究
·解读oracle控制文件
·ORACLE SQL性能优化系列 (一)
·Latch与lock示疑
·利用冷备创建standby
·Oracle9iR2 Data Guard的保护模式
·关于HWM的一点研究
·数据库物理分布设计
·ORA-07445错误分析总结
·ORA-12709错误一例
·强烈推荐:ORACLE学习笔记--性能优...
·oracle优化:oracle诊断性能问题
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接