Oracle資料庫記憶體引數調優技術的個人總結 (1)

idba發表於2008-05-10
這篇論壇文章(賽迪網技術社群)主要針對Oracle記憶體引數的調優技術進行了深入的講解,詳細內容請參考下文。

近來公司技術,研發都在問我關於記憶體引數如何設定可以優化Oracle的效能,所以抽時間整理了這篇文件,以做參考。

目的:

希望通過整理此文件,使公司同事對oracle記憶體結構有一個全面的瞭解,並在實際的工作中靈活應用,使oracle的記憶體效能達到最優配置,提升應用程式反應速度,並進行合理的記憶體使用。

例項結構

oracle例項=記憶體結構+程式結構

oracle例項啟動的過程,其實就是oracle記憶體引數設定的值載入到記憶體中,並啟動相應的後臺程式進行相關的服務過程。

程式結構

oracle程式=伺服器程式+使用者程式

幾個重要的後臺程式:

DBWR:資料寫入程式.

LGWR:日誌寫入程式.

ARCH:歸檔程式.

CKPT:檢查點程式(日誌切換;上一個檢查點之後,又超過了指定的時間;預定義的日誌塊寫入磁碟;例程關閉,DBA強制產生,表空間offline)

LCKn(0-9):封鎖程式.

Dnnn:排程程式.

記憶體結構(我們重點講解的)

記憶體結構=SGA(系統全域性區)+PGA(程式全域性區)

SGA就是我們所說的記憶體調優的主要物件。我們重點就是設定SGA

原則:SGA+PGA+OS使用記憶體1、SGA系統全域性區.(包括以下五個區)

A、資料緩衝區:(db_block_buffers)儲存由磁碟資料檔案讀入的資料。

大小: db_block_buffers*db_block_size

Oracle9i設定資料緩衝區為:Db_cache_size

原則:SGA中主要設定物件,一般為可用記憶體40%。

B、共享池:(shared_pool_size):資料字典,sql緩衝,pl/sql語法分析.加大可提速度。

原則:SGA中主要設定物件,一般為可用記憶體10%

C、日誌緩衝區:(log_buffer)儲存資料庫的修改資訊.

原則:128K ---- 1M 之間,不應該太大

D 、JAVA池(Java_pool_size)主要用於JAVA語言的開發.

原則:若不使用java,原則上不能小於20M,給30M通常就夠了

E、 大池(Large_pool_size) 如果不設定MTS,主要用於資料庫備份恢復管理器RMAN。

原則:若不使用MTS,5---- 10M 之間,不應該太大

SGA=. db_block_buffers*db_block_size+ shared_pool_size+ log_buffer+Java_pool+size+large_pool_size

原則: 達到可用記憶體的55-58%就可以了.

2、PGA程式全域性區

A、Sort_area_size 用於排序所佔記憶體

B、Hash_area_size 用於雜湊聯接,點陣圖索引

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

相關文章