Oracle Automatic PGA Memory Management

keeptrying發表於2012-06-04

理想情況下,工作區的大小足夠大到能容納其相關SQL運算子分配的輸入資料和輔助記憶體結構,這一大小被稱為工作區的最佳大小。工作區大小小於最佳大小時,響應時間就會增加,因為要對部分輸入資料執行額外的傳輸操作。

自動PGA記憶體管理功能簡化並改進了PGA記憶體的分配方式。預設情況下,PGA記憶體管理功能是啟動的,在此模式下,Oracle資料庫以SGA記憶體大小的20%為基準,動態調整專用於工作區的那部分PGA記憶體的大小。最小值為10MB

在自動PGA記憶體管理模式下執行時,所有會話的工作區大小的調整都是自動的。在該模式下執行的所有會話都會忽略*_AREA_SIZE引數(例如SORT_AREA_SIZE。在任何給定時間,可用於例項中各活動工作區的PGA記憶體總量自動從PGA_AGGREGATE_TARGET初始化引數派生。此記憶體量設定為PGA_AGGREGATE_TARGET值減去系統其它元件分配的PGA記憶體量(例如,會話分配的PGA記憶體)。由此得到的PGA記憶體隨後按照各活動工作區的特定記憶體需求分配給相應的工作區。

為了實現自動的PGA管理,Oracle引入了幾個新的初始化引數:

l   PGA_AGGREGATE_TARGET:此引數用來指定所有session總計可以使用最大PGA記憶體。這個引數可以被動態的更改,取值範圍從10M——(4096G-1bytes

l   WORKAREA_SIZE_POLICY:此引數用於開關PGA記憶體自動管理功能。該引數有兩個選項:AUTOMANUAL,當設定為AUTO時,資料庫使用Oracle9i提供的自動PGA管理功能,當設定為MANUAL時,則仍然使用Oracle9i前手工管理的方式。預設的,Oracle9iWORKAREA_SIZE_POLICY被設定為AUTO

需要注意的是,在Oracle9i中,PGA_AGGREGATE_TARGET引數僅對專用伺服器模式下(Dedicated Server)的專屬連線有效,但是對共享伺服器(Shared Server)連線無效;從Oracle 10g開始PGA_AGGREGATE_TARGET對專用伺服器和共享伺服器同時生效。

為了向後相容,Automatic PGA Memory Management可以被關閉,通過設定PGA_AGGREGATE_TARGET引數為0.

關閉Automatic PGA Memory Management後,工作區的最大值通過以下引數來設定:

l   SORT_AREA_SIZE

l   HASH_AREA_SIZE

l   BITMAP_MERGE_AREA_SIZE

l   CREATE_BITMAP_AREA_SIZE

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

相關文章