調節記憶體結構

lihui29發表於2009-01-06

調節共享池(SHARED POOL

SHARE_POOL_SIZE決定共享池的大小

共享池由四部分組成:庫快取、資料字典快取、控制結構、使用者全域性區(UGA

n 庫快取包括:

共享SQL區:SQL語句的解析程式碼及執行計劃。

PL/SQL程式區:編譯好的PL/SQL程式。

鎖區:防止多個程式在同一時間操作同一個資源。

n 資料字典快取儲存從資料字典中得來的內容,這樣Oracle可以快速存取資料字典中的資料

n 使用者全域性區(UGA; 在共享伺服器下有的.

調節資料庫快取記憶體區(BUFFER CACHE)

DB_CACHE_SIZE資料庫快取記憶體區大小

資料庫快取記憶體中的資料塊為下面三種狀態之一:

自由塊:資料內容與磁碟上的一致,這樣的資料塊可重用

髒資料塊:發生改變的資料塊,只有將該塊的內容寫入磁碟資料檔案後,該資料塊才可重用

不可動塊:當前正在被存取的塊

n 監視資料庫快取記憶體區:

select name,value from v$sysstat

where name='db block gets'

or name='consistent gets'

or name = 'physical reads'

n 計算命中率:

1 – physical reads/(db block gets + consistent gets)

如果命中率低於90%,則要增加大小。

調整重做日誌緩衝區(REDO LOG BUFFER)

LOG_BUFFER重做日誌緩衝區大小

n 監視重做日誌緩衝區:

select name,value from v$sysstat

where name='redo buffer allocation retries'

or name='redo entries'

如果redo buffer allocation retries/redo entries 大於1%,則存在效能問題,需要增大log_buffer.

n redo buffer allocation retries:統計值反應了使用者程式等待redo log bufer空間以拷入新的重做入口資料的次數。這個值應該接近為0,如果不斷增加則要增大log buffer的值。

n redo log space requests:活動的日誌檔案被充滿,Oracle伺服器程式等待日誌檔案切換從而分配新的磁碟空間的次數。

n select * from v$session_wait where event = 'log buffer space’;

如果有返回值,則說明redo log檔案可能存在磁碟I/O競爭,可以透過加大log buffer和將日誌檔案改變到快速磁碟上。[@more@]

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

相關文章