Oracle PGA參數

來源:互聯網
上載者:User
PGA: 程式全域區,伺服器處理序使用的記憶體地區,包括特定伺服器處理序的資料和控制資訊,例如使用的作業系統資源等。
UGA: 使用者全域區,特定Session使用的記憶體地區,例如Session的SQL工作區、登陸認證資訊等。Session的SQL工作區大小對查詢效能的影響比較關鍵,shared server模式時UGA從SGA的large pool(如果有設定)或者shared pool(沒有設定large pool)中分配,dedicated server模式時UGA從PGA中分配。
CGA: 調用全域區,存放調用過程中需要的資料,例如parse調用、executive調用、fetch調用等。調用過程中實際需要的資料,例如SQL Area、Sort Area等位於UGA中,CGA存放的只是調用過程中的臨時處理資料,例如I/O緩衝、臨時堆棧空間等。CGA位於PGA中(PGA是集中管理這些資源的地方),在調用開始時建立,調用執行過程中動態分配,調用結束後釋放。

WORKAREA_SIZE_POLICY = { AUTO | MANUAL }
{ ALTER SYSTEM | ALTER SESSION } SET WORKAREA_SIZE_POLICY = { AUTO | MANUAL }
設為AUTO時,記憶體使用量比較多的SQL操作,例如sort, group-by, hash-join, bitmap merge和bitmap create等,由Oracle自動分配;設為MANUAL時,這些操作將使用相應的*_AREA_SIZE參數設定的記憶體值。
*_AREA_SIZE作用於每個Session,分配的過小,很多Session可能沒有足夠的記憶體而效率低下,分配過多,大量Session可能浪費掉很多記憶體空間,9i開始的PGA自動管理功能改善了這個狀況。使用PGA_AGGREGATE_TARGET設定整個PGA大小,Oracle將為每個Session按照實際需要為其分配PGA,並盡量維持PGA總量不超過PGA_AGGREGATE_TARGET值。

PGA_AGGREGATE_TARGET = integer [K | M | G]
ALTER SYSTEM
設定總的PGA記憶體大小。Oracle將盡量保證PGA記憶體總合不超過這個值,但不是絕對的,為了避免磁碟操作,有時可能會超過這個值。可以設定為總的記憶體數減去SGA的剩餘值。
將該初始化參數設定為大於0的值,Oracle自動將WORKAREA_SIZE_POLICY設為AUTO;將該初始化參數設定為0,Oracle自動將WORKAREA_SIZE_POLICY設為MANUAL。設定了PGA_AGGREGATE_TARGET之後,會忽略所有*_AREA_SIZE設定。

HASH_AREA_SIZE = Integer
ALTER SESSION
單位為位元組數。

SORT_AREA_SIZE = Integer
ALTER SESSION, ALTER SYSTEM ... DEFERRED
單位為位元組數。如果沒有設定SORT_AREA_RETAINED_SIZE,分配的記憶體在排序結束,開始返回記錄之前釋放,如果設定了SORT_AREA_RETAINED_SIZE,分配的記憶體在最後一條記錄返回後釋放。位元影像索引上的插入、更新也會用到SORT_AREA_SIZE(因為掃描完索引之後必須對各個位元影像進行排序,然後再合并成一個位元影像)。

SORT_AREA_RETAINED_SIZE = Integer
ALTER SESSION, ALTER SYSTEM ... DEFERRED
單位為位元組數。指在UGA中保留的排序記憶體大小,排序操作結束,返回最後一條記錄之後釋放排序記憶體,只是釋放給UGA,而不是作業系統。

BITMAP_MERGE_AREA_SIZE,CREATE_BITMAP_AREA_SIZE,位元影像索引建立、更新時使用的記憶體配置。

_pga_max_size: Maximum size of the PGA memory for one process。ALTER SYSTEM。預設值200M。
查看_pga_max_size值的方法:
select ksppinm "Name", ksppstvl/1024/1024 ||'M' "Value", ksppdesc "Desc"
from x$ksppi x, x$ksppcv y
where x.indx = y.indx and ksppinm ='_pga_max_size';

_smm_max_size: Maximum work area size in auto mode (serial)。{ALTER SESSION | ALTER SYSTEM}。
網上有很多描述_smm_max_size預設值的說法,其實都不對,追究其演算法也沒多少意義,反正如果你沒有手動設定過_smm_max_size的值,一旦設定_pga_max_size或者PGA_AGGREGATE_TARGET,Oracle就會自動計算出_smm_max_size的值,如果手動設定過_smm_max_size則不會變化,Oracle自動計算出的_smm_max_size值,跟PGA_AGGREGATE_TARGET和_pga_max_size都有關係。查看_smm_max_size值的方法如下:
select ksppinm "Name", ksppstvl/1024 ||'M' "Value", ksppdesc "Desc"
from x$ksppi x, x$ksppcv y
where x.indx = y.indx and ksppinm ='_smm_max_size';

使用PGA_AGGREGATE_TARGET讓Oracle自動分配PGA時,為了防止單個Session佔用過多記憶體而導致整個伺服器效能下降,這兩個隱藏參數控制了單個進程的最大記憶體使用量量。
這兩個參數為隱藏參數,Oracle官方不進行支援人員,如果系統中存在大量的HASH JOIN、SORT等耗費記憶體的操作,可以考慮、測試這些參數對系統效能的影響,但注意其副作用。
沒有使用並行查詢時,單個Session SQL工作區記憶體使用量最大值為min( 5%*PGA_AGGREGATE_TARGET , 50%*_pga_max_size , _smm_max_size)。

設定_pga_max_size: Alter System Set "_pga_max_size"=1024M。
設定_smm_max_size: Alter System Set "_smm_max_size"=307200,單位是K,只能以這種單位進行設定,數字後面不能使用K、M、G這些單位字元了。

監控、改善PGA設定
監控PGA的視圖:v$sql_workarea_active、v$sql_workarea、v$sesstat、v$process、v$sysstat、v$sql_workarea_histogram等。
使用下面的視圖查看Oracle建議的評定設定:
Select pga_target_for_estimate/1024/1024 ||'M' "Estimate PGA Target"
       ,estd_pga_cache_hit_percentage "Cache Hit(%)"
       ,estd_extra_bytes_rw/1024/1024 ||'M' "Extra Read/Write"
       ,estd_overalloc_count "Over alloc count"
From v$pga_target_advice
選出的4個列中,Over alloc count指示Oracle SQL工作區記憶體配置的三種情況:optimal完全可以在記憶體中完成操作;onepass需要進行一次磁碟交換;multipass需要進行多次磁碟交換。第四列的值就是需要進行磁碟交換的數量。
PGA_AGGREGATE_TARGET的值最好選擇: Over alloc count為0、Cache Hit(%)儘可能高、Extra Read/Write儘可能低的Estimate PGA Target值。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.