1. buffer cache
2.redo log buffer
3.shared pool 包含 library cache
4.java pool
5.large pool(optional)
6.streams pool
7.data dictionary cache
8.other miscellaneous information
10g參數:
db_cache_size cache of stardard blocks的大小
log_buffer 分配給redo log buffer的字節數
shared_pool_size 給配共享sql或者pl/sql語句的字節大小
large_pool_size large_pool的大小;默認0
java_pool_size java pool的大小
1.AMM Auto Memory Management
指定實例內存大小,自動分配給SGA和PGA。
2.ASMM Auto Shared Memory Management
部分自動化的。當你設定SGA目標值大小後,你可以選擇設定一個總的PGA目標大小,或者分別管理PGA工作區。英文不好,不能理解,付上原文:
This management mode is partially automated. You set a target size for the SGA and then have the option of setting an aggregate target size for the PGA or managing PGA work areas individually.
3.Manual memory management
可以通過參數手工分別制定SGA和PGA個部件的大小。
UGA: user global area
session variables
OLAP pool
當session裝載一個PL/SQL package到內存,那麼UGA就獲取(contain)這個包的詳情(package state),即存儲在session variables的值的集合。
OLAP Pool用來管理OLAP數據塊,OLAP session連接時被分配,斷開時釋放。
在共享服務器模式中,UGA在SGA中,因爲PGA只會分配給一個進程;在專有服務器模式中,UGA在PGA中。
PGA:program golbal area
PGA是分配給operating processes or thread的內存,這些process或者thread之間是互不共享的。
PGA可能出現的內容(並非每次出現):
Sort Area Hash Area Bitmap Merge Area --------稱爲 SQL work areas
Session Memory persistent area Runtime Area --------後面2個稱爲 private sql area
private SQL area 包含解析過多sql語句和其他一些session信息。當服務進程執行SQL或者PL/SQL代碼, private
SQL area會被用來存儲綁定變量、query
execution state information, and query execution work areas。
private SQL
area, which is in the UGA。
shared SQL
area, which stores execution plans in the SGA。
to be continued...