Oracle 10g中,記憶體引數

jst143發表於2010-12-29
Oracle 10g中,與記憶體相關的引數可以歸為兩類:

q  自動調優的SGA引數:目前這些引數包括DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE和JAVA_POOL_SIZE。

q  手動SGA引數:這些引數包括LOG_BUFFER、STREAMS_POOL、DB_NK_CACHE_SIZE、DB_KEEP_CACHE_SIZE和DB_RECYCLE_CACHE_SIZE。

在Oracle 10g中,任何時候你都能查詢V$SGAINFO,來檢視SGA的哪些元件的大小可以調整。

注意    要使用自動SGA記憶體管理,引數STATISTICS_LEVEL必須設定為TYPICAL或ALL。如果不支援統計集合,資料庫就沒有必要的歷史資訊來確定大小。

採用自動SGA記憶體管理時,確定自動調整元件大小的主要引數是SGA_TARGET,這個引數可以在資料庫啟動並執行時動態調整,最大可以達到SGA_MAX_SIZE引數設定的值(預設等於SGA_TARGET,所以如果想增加SGA_TARGET,就必須在啟動資料庫例項之前先把SGA_MAX_SIZE設定得大一些)。資料庫會使用SGA_TARGET值,再減去其他手動設定元件的大小(如DB_KEEP_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE等),並使用計算得到的記憶體量來設定預設緩衝區池、共享池、大池和Java池的大小。在執行時,例項會根據需要動態地對這4個記憶體區分配和撤銷記憶體。如果共享池記憶體用光了,例項不會向使用者返回一個ORA-04031“Unable to allocate N bytes of shared memory”(無法分配N位元組的共享記憶體)錯誤,而是會把緩衝區快取縮小几MB(一個顆粒的大小),再相應地增加共享池的大小。

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

相關文章