Oracle PGA記憶體的配置和使用

孤竹星發表於2015-05-20
--預備知識

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。

--PGA_AGGREGATE_TARGET初始化設定 

PGA_AGGREGATE_TARGET的值應該基於Oracle例項可利用記憶體的總量來設定,這個引數可以被動態的修改。假設Oracle例項可分配4GB的實體記憶體,剩下的記憶體分配給作業系統和其它應用程式。你也許會分配80%的可用記憶體給Oracle例項,即3.2G。現在必須在記憶體中劃分SGA和PGA區域。 

在OLTP系統中,典型PGA記憶體設定應該是總記憶體的較小部分(例如20%),剩下80%分配給SGA。 
OLTP:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 20% 

在DSS系統中,由於會執行一些很大的查詢,典型的PGA記憶體最多分配70%的記憶體。
DSS:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 50% 

在這個例子中,總記憶體4GB,DSS系統,你可以設定PGA_AGGREGATE_TARGET為1600MB,OLTP則為655MB。 

--配置PGA自動管理 

不用重啟DB,直接線上修改。

SQL> alter system set workarea_size_policy=auto scope=both;

System altered.

SQL> alter system set pga_aggregate_target=512m scope=both;

System altered.

SQL> show parameter workarea

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy                 string      AUTO --這個設定成AUTO
SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 536870912

SQL> 

--監控自動PGA記憶體管理的效能 

V$PGASTAT:這個檢視給出了一個例項級別的PGA記憶體使用和自動分配的統計。 

SQL> set lines 256
SQL> set pages 42
SQL> SELECT * FROM V$PGASTAT; 

NAME                                                                  VALUE UNIT
---------------------------------------------------------------- ---------- ------------
aggregate PGA target parameter                                    536870912 bytes    --當前PGA_AGGREGATE_TARGET的值 
aggregate PGA auto target                                         477379584 bytes    --當前可用於自動分配了的PGA大小,不應該比PGA_AGGREGATE_TARGET 小 
global memory bound                                                26843136 bytes    --自動模式下工作區域的最大大小,Oracle根據工作負載自動調整。 
total PGA inuse                                                     6448128 bytes
total PGA allocated                                                11598848 bytes    --PGA的最大分配 
maximum PGA allocated                                             166175744 bytes
total freeable PGA memory                                            393216 bytes    --PGA的最大空閒大小 
PGA memory freed back to OS                                        69074944 bytes
total PGA used for auto workareas                                         0 bytes    --PGA分配給auto workareas的大小 
maximum PGA used for auto workareas                                 1049600 bytes
total PGA used for manual workareas                                       0 bytes
maximum PGA used for manual workareas                                530432 bytes
over allocation count                                                  1118    --例項啟動後,發生的分配次數,如果這個值大於0,就要考慮增加pga的值 
bytes processed                                                   114895872 bytes
extra bytes read/written                                            4608000 bytes
cache hit percentage                                                  96.14 percent    --命中率 

16 rows selected.

--V$PGA_TARGET_ADVICE 

SQL> SELECT round(PGA_TARGET_FOR_ESTIMATE/1024/1024) target_mb, 
   ESTD_PGA_CACHE_HIT_PERCENTAGE cache_hit_perc, 
   ESTD_OVERALLOC_COUNT
   FROM v$pga_target_advice;

The output of this query might look like the following:

TARGET_MB   CACHE_HIT_PERC ESTD_OVERALLOC_COUNT
---------- -------------- --------------------
63       23          367
125        24          30
250        30          3
375        39          0
500        58          0
600        59          0
700        59          0
800        60          0
900        60          0
1000    61          0
1500    67          0
2000    76          0
3000    83          0
4000    85          0

可以看出當TARGET_MB 為375M是ESTD_OVERALLOC_COUNT=0,所以我們可以將PGA_AGGREGATE_TARGET設定成375M。

地址:http://blog.chinaunix.net/uid-10218589-id-348945.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28282660/viewspace-1663284/,如需轉載,請註明出處,否則將追究法律責任。

相關文章