Posted on 2011-08-18 11:55
瘋狂 閱讀(2107)
評(píng)論(0) 編輯 收藏 所屬分類:
database
PGA(Process Global Area),是server process一段私有內(nèi)存區(qū),它包含有全局變量,數(shù)據(jù)結(jié)構(gòu)和一些控制信息。在Oracle8i 中,PGA調(diào)整非常復(fù)雜,要調(diào)整SORT_AREA_SIZE、HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE、 CREATE_BITMAP_AREA_SIZE等參數(shù)。在ORACLE9I以后,只需要調(diào)整 PGA_AGGREGATE_TARGET。
每個(gè)用戶連接到Oracle,都會(huì)占用一定的內(nèi)存,當(dāng)然,用戶一般連上之后還會(huì)做一些操作,比如一般的查詢,有排序操作的查詢,或用到Hash連接的查詢。這些都需要內(nèi)存,而這些內(nèi)存(還有一些其他的,這里就不說了。)加起來就是PGA的大小了。如果PGA設(shè)置的過小,會(huì)導(dǎo)致Oracle頻繁同磁盤進(jìn)行交換,性能將會(huì)受到很大影響。
3.3.1 查看PGA
通過下面的命令來查看SGA:
show parameter pga;
結(jié)果如下圖:
PGA" alt="Oracle PGA" src="http://s4.sinaimg.cn/bmiddle/5421dfd2t770c95093323&690">
pga_aggregate_target的值就是PGA的大小,從上圖可以看出pga_aggregate_target的大小是200M。
3.3.2 修改PGA
通過下面的命令可以修改共享池內(nèi)存的大小:
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是一個(gè)動(dòng)態(tài)參數(shù),可以在運(yùn)行時(shí)修改,因此這里的scope設(shè)置為both,新的內(nèi)存大小馬上生效,并且還將修改保存在Oracle的啟動(dòng)文件里。
3.3.3 查看PGA命中率
可以通過下面的命令查看命中率:
SELECT a.VALUE "看命中率咯"
FROM V$PGASTAT a
where a.NAME = 'cache hit percentage';
結(jié)果如下:
PGA" alt="Oracle PGA" src="http://s13.sinaimg.cn/bmiddle/5421dfd2t770c96f22a7c&690" real_src="http://s13.sinaimg.cn/bmiddle/5421dfd2t770c96f22a7c&690">