疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Oracle PGA

Posted on 2011-08-18 11:55 疯狂 阅读(2105) 评论(0)  编辑  收藏 所属分类: database

PGA(Process Global Area),是server process一段私有内存区,它包含有全局变量,数据结构和一些控制信息。在Oracle8i 中,PGA调整非常复杂,要调整SORT_AREA_SIZE、HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE、 CREATE_BITMAP_AREA_SIZE等参数。在ORACLE9I以后,只需要调整 PGA_AGGREGATE_TARGET。
每个用户连接到Oracle,都会占用一定的内存,当然,用户一般连上之后还会做一些操作,比如一般的查询,有排序操作的查询,或用到Hash连接的查询。这些都需要内存,而这些内存(还有一些其他的,这里就不说了。)加起来就是PGA的大小了。如果PGA设置的过小,会导致Oracle频繁同磁盘进行交换,性能将会受到很大影响。

3.3.1 查看PGA
通过下面的命令来查看SGA:
show parameter pga;

结果如下图:
  PGA" alt="Oracle PGA" src="http://s4.sinaimg.cn/bmiddle/5421dfd2t770c95093323&690">
pga_aggregate_target的值就是PGA的大小,从上图可以看出pga_aggregate_target的大小是200M。

3.3.2 修改PGA
通过下面的命令可以修改共享池内存的大小:
alter system set pga_aggregate_target=90M scope=both;

 PGA" alt="Oracle PGA" src="http://s11.sinaimg.cn/bmiddle/5421dfd2t770c95bae1da&690" real_src="http://s11.sinaimg.cn/bmiddle/5421dfd2t770c95bae1da&690">

pga_aggregate_target是一个动态参数,可以在运行时修改,因此这里的scope设置为both,新的内存大小马上生效,并且还将修改保存在Oracle的启动文件里。

3.3.3 查看PGA命中率
可以通过下面的命令查看命中率:
SELECT a.VALUE "看命中率咯"
  FROM V$PGASTAT a
  where a.NAME = 'cache hit percentage';

结果如下:

PGA" alt="Oracle PGA" src="http://s13.sinaimg.cn/bmiddle/5421dfd2t770c96f22a7c&690" real_src="http://s13.sinaimg.cn/bmiddle/5421dfd2t770c96f22a7c&690">


只有注册用户登录后才能发表评论。


网站导航: