新聞中心
Oracle 10g數(shù)據(jù)庫(kù)中需要設(shè)置workarea_size_policy為AUTO,并設(shè)置pga_aggregate_target參數(shù)來(lái)實(shí)現(xiàn)PGA的內(nèi)存管理。接下來(lái)我們就來(lái)介紹這一設(shè)置過(guò)程的實(shí)現(xiàn)。首先看看如下代碼:

- SQL> show parameter pga
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- pga_aggregate_target big integer 169M
- SQL> show parameter workarea
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- workarea_size_policy string AUTO
- SQL> show parameter pga
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- pga_aggregate_target big integer 169M
- SQL> show parameter workarea
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- workarea_size_policy string AUTO
pga_aggregate_target參數(shù)可以根據(jù)經(jīng)驗(yàn)值進(jìn)行設(shè)置,評(píng)估PGA的簡(jiǎn)單方法可以查看AWR報(bào)告中的PGA命中率(PGA Cache Hit%),以及分析direct path read temp和direct path write temp等待事件是否比較高,這些等待表示PGA設(shè)置參數(shù)有限而導(dǎo)致大量臨時(shí)表空間操作出現(xiàn)的等待事件。當(dāng)然還有復(fù)雜的評(píng)估PGA的方法,以后再看吧。
注意,9I的shared server連接需要明確設(shè)置SORT_AREA_SIZE 和 HASH_AREA_SIZE,也就是說(shuō)不能用自動(dòng)管理模式。10G則無(wú)此限制。
PGA_AGGREGATE_TARGET是一個(gè)上限(理論上的***值,PL/SQL就很容易超過(guò)),ORACLE啟動(dòng)時(shí)并不分配那么多,你甚至可以設(shè)置大于物理MEM的大?。ㄉa(chǎn)庫(kù)不要這么做呀,要設(shè)置pga_aggregate_target+sga parallel query會(huì)用到最多30%(由隱藏參數(shù)控制)的PGA_AGGREGATE_TARGET,每一個(gè)parallel query的PIECE會(huì)分配相應(yīng)的30%,也就是parallel query可能會(huì)用到30M,10個(gè)PARALLEL,那么每個(gè)用3M。這也就是建議用auto管理的原因,一個(gè)系統(tǒng)通常workload,session是隨時(shí)間變化的,早上可能3個(gè)用戶,中午可能300個(gè)用戶,所以用固定sort,hash的參數(shù)是不合時(shí)宜的.自動(dòng)管理才可以實(shí)現(xiàn)在用戶并發(fā)少的時(shí)候分配更多的內(nèi)存,在并發(fā)多的時(shí)候照顧大眾,分配少的內(nèi)存。ORACLE 9.2以后有了PGA advisory。這一段中所說(shuō)的5%,30%不知是否正確,沒(méi)有時(shí)間看oracle文檔,在此提醒一下自己。 v$pgastat: 幾個(gè)重要參數(shù)的說(shuō)明: aggregate PGA target parameter 設(shè)置的pga的目標(biāo)參數(shù)值。 aggregate PGA auto target 在自動(dòng)管理模式下,oracle工作區(qū)可使用的pga。 total PGA inuse 當(dāng)前實(shí)例使用的pga。 total PGA allocated 當(dāng)前實(shí)例實(shí)際分配的pga。 maximum PGA allocated 可分配的***pga。 over allocation count ORACLE分配的PGA超過(guò)pga_aggregate_target的次數(shù).這個(gè)參數(shù)可以判斷pga_aggregate_target是否設(shè)置的太小。 cache hit percentage 自從instance啟動(dòng)后的PGA命中率,如果所有的操作都在MEM中進(jìn)行沒(méi)有在TEMP里運(yùn)行的話應(yīng)該是100%。 【編輯推薦】
當(dāng)前題目:Oracle內(nèi)存管理PGA詳解
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/dpeechh.html


咨詢(xún)
建站咨詢(xún)
