ORACLE PGA introduction

來源:互聯網
上載者:User

標籤:oracle pga

理解PGA

PGA(program grlobal area or process global area)指服務進程的私人記憶體空間,包括服務進程全域變數,資料結構和控制資訊,如服務進程SQL查詢的遊標,PGA包括以下結構:

私人SQL地區:

        儲存服務進程執行SQL所需要的私人資料和控制結構,包括固定地區和運列區域(runtimearea)。固定地區資料在SQL遊標關閉之前一直存在,運列區域在SQL執行時存在(如INSERT、DELETE及UPDATE執行完成後釋放運列區域,SELECT語句只有所有查詢結果集擷取完成或取消才釋放運列區域)。對於獨立模式連結,私人SQL地區在PGA中分配,而共用模式連結私人SQL地區在SGA中分配。

    會話空間:

        儲存使用者logon資訊等會話控制資訊。對於共用模式,會話資訊是共用的。

    SQL工作區(SQL workarea):

        對於複雜SQL,需要進行多表查詢,可能會需要額外地區如:

            排序操作

            HASH JION

            位元影像連結

            建立位元影像

            多表HASH連結

            ……

在oracle server中PGA的空間是獨立於SGA的,PGA中的SQL工作區域對資料庫的效能有很大影響,配置合理的PGA對於調整系統效能有很大的協助。

 

PGA是獨立於SGA的記憶體空間,主要用來執行SQL、表串連、排序等操作,一般根據系統配置和應用軟體的不同,可以把實體記憶體的15%——30%用於PGA空間。

 

排序區操作需要分配記憶體空間,這部分記憶體空間稱為sort_area。在使用pga自動管理的系統中sort_area被自動管理,否則,由sort_areaZ_size參數分配限定每個會話的使用sort_area的最大值。

 

通過v$sort_segment可以查看暫存資料表空間排序段的使用空間。

 SQL> selecttablespace_name, extent_size, total_extents, used_extents, free_extents,max_used_size  2  from v$sort_segment; TABLESPACE_NAME                 EXTENT_SIZE TOTAL_EXTENTSUSED_EXTENTS FREE_EXTENTS MAX_USED_SIZE------------------------------------------ ------------- ------------ ------------ -------------TEMP                                    128            58            0          58             9

查看某個資料庫使用者當前使用了多少臨時段空間,可以通過查看v$sort_usage和v$session實現:

SQL>select s.username, u.tablespace, u.contents, u.extents, u.blocks      2   from v$session s, v$sort_usage u  3   where s.saddr = u.session_addr;  PGA  PGA_AGGREGATE_TARGET

PGA  PGA_AGGREGATE_TARGET

SQL>show parameters pga NAME                                 TYPE        VALUE----------------------------------------------- ------------------------------pga_aggregate_target                 big integer 800MPGA能夠使用的最大空間SQL>show parameters workarea_size NAME                                 TYPE        VALUE----------------------------------------------- ------------------------------workarea_size_policy                 string     AUTO分配SQL工作區的規則, AUTO或MANNUALSQL>show parameters sort_area_size NAME                                 TYPE        VALUE----------------------------------------------- ------------------------------sort_area_size                       integer     65536定義每個會話SQL排序區的最大值SQL>show parameters hash_area_size NAME                                 TYPE        VALUE----------------------------------------------- ------------------------------hash_area_size                       integer     131072定義每個會話hash串連的記憶體空間最大值SQL>show parameters bitmap_merge_area_size NAME                                 TYPE        VALUE----------------------------------------------- ------------------------------bitmap_merge_area_size               integer     1048576定義每個會話使用位元影像合并串連時的記憶體工作區域的最大值SQL>show parameters create_bitmap_area_size NAME                                 TYPE        VALUE----------------------------------------------- ------------------------------create_bitmap_area_size              integer     8388608定義每個會話建立位元影像時可以使用的記憶體工作區域的最大值

如果workarea_size_policy設定為AUTO就不需要為*_area_size設定值,PGA自動管理為自動為各個工作區分配記憶體大小。Oracle10g之後,共用模式串連也可以設定workarea_size_policy自動管理。

 

通過v$sgastat可以得到一些調整PGA_AGGREGATGE_TARGET參數的參考資料

SQL>select * from v$pgastat; NAME                                                                 VALUE UNIT-------------------------------------------------------------------------- ------------aggregate PGA targetparameter                                   838860800 bytesaggregate PGA autotarget                                        531348480 bytesglobal memory bound                                              104857600 bytestotal PGA inuse                                                  248585216 bytestotal PGA allocated                                              319751168 bytesmaximum PGA allocated                                            481471488 bytestotal freeable PGAmemory                                         45678592 bytesprocess count                                                           67max processes count                                                     96PGA memory freed back toOS                                     3.1422E+11 bytestotal PGA used for autoworkareas                                         0 bytes NAME                                                                 VALUE UNIT-------------------------------------------------------------------------- ------------maximum PGA used for autoworkareas                                56870912 bytestotal PGA used for manualworkareas                                      0 bytesmaximum PGA used for manualworkareas                               542720 bytesover allocation count                                                    0bytes processed                                                 3.6840E+11 bytesextra bytes read/written                                                 0 bytescache hit percentage                                                   100 percentrecompute count (total)                                            2761548 19 rows selected.

AggregatePGA auto target 可調整的pga空間,只有這部分空間可以被oracle自動調整功能使用,並用於各種SQL工作區域,這部分空間應該占PGA_AGGREGATE_TARGET中的最大比重,如果太小,可能會引起效能問題。

TotalPGA used for auto workarea

    系統使用的可調整PGA空間,maxmum PGA used for auto workarea顯示系統啟動後使用可調整PGA的最大值

TotalPGA in used:

    目前PGA空間的使用方式,這個值和v$process中的PGA_USED_MEM相同

Cachehit percentage: 這個值在oracle9i後出現,它顯示PGA的效能。如果值是100%說明PGA的空間是夠用的。

當PGA空間不足時,oracle需要使用外部輔助空間,結合one-pass或multi-pass模式來完成操作,此時系統的效能將受到影響,該值得計算公式為:

 

PGACACHE HIT RATIO=total byte processed * 100 / (total bytes processed + totalextra bytes read/written)

使用v$sql_workarea_histogram視圖可以查看系統中PGA的詳細使用方式,該視圖中列出了

 

通過v$sal_workarea_active視圖,可以查看當前活躍的PGA工作區




未完待續……


本文出自 “DBA的天空” 部落格,請務必保留此出處http://kevinora.blog.51cto.com/9406404/1765483

ORACLE PGA introduction

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.