Posted on 2011-08-18 11:55
瘋狂 閱讀(2107)
評論(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">