ORACLE 10G中SGA,PGA内存分配对系统性能的影响
博客专区 > hefeiuu 的博客 > 博客详情
ORACLE 10G中SGA,PGA内存分配对系统性能的影响
hefeiuu 发表于7个月前
ORACLE 10G中SGA,PGA内存分配对系统性能的影响
  • 发表于 7个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

最近在学习PGA时有一点心得,特此记下,以备查.

    ORACLE官方文档对PGA解释如下“areas used by memory-intensive SQL operators such as sort, group-by, hash-join, bitmap merge, and bitmap create。”很明显PGA是用于SQL排序和哈希连接,位图创建所用的内存区域,当排序空间超过100M或者PGA的 5%时,ORACLE会选择在TEMP表空间继续进行排序,所以理论上说PGA越大,数据库性能应该越好,应该尽量增加该部分的空间大小,不过增加该部分空间可能会对SQL语句的执行计划产生影响,所以在修改PGA时要经过测试确认.

   对SGA修改时,并不是越大越好,当SGA过大时会导致library cache,dictionary cache命中率下降,从而对系统性能产生负面影响,PGA主要是排序操作,所以相对SGA来说过大的PGA并不会带来多么严重的性能下降,只会降低HASH JOIN的成本,从而使优化器更多的选择使用HASH JOIN.

   将PGA的管理交给ORACLE内存管理器是一个不错的选择,绝大多数据时候比手工设置各个值要好的多,只不过在ORACLE 9I共享服务器时无法使用PGA自动管理特性.

  可以通过下面的SQL查询来大致确认PGA是否够用:

select name,value,unit from v$pgastat where name in('aggregate PGA target parameter','maximum PGA allocated');

  当maximum PGA allocated相对于aggregate PGA target parameter过大时,则说明PGA偏小了,需要增加空间.
标签: Oracle SQL Cache
共有 人打赏支持
粉丝 3
博文 64
码字总数 0
×
hefeiuu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: