近來公司技術,研發都在問我關于內存參數如何設置可以優化Oracle的性能,所以抽時間整理了這篇文檔,以做參考。
目的:
希望通過整理此文檔,使公司同事對oracle內存結構有一個全面的了解,并在實際的工作中靈活應用,使oracle的內存性能達到最優配置,提升應用程序反應速度,并進行合理的內存使用。
實例結構
oracle實例=內存結構+進程結構
oracle實例啟動的過程,其實就是oracle內存參數設置的值加載到內存中,并啟動相應的后臺進程進行相關的服務過程。
進程結構
oracle進程=服務器進程+用戶進程
幾個重要的后臺進程:
DBWR:數據寫入進程.
LGWR:日志寫入進程.
ARCH:歸檔進程.
CKPT:檢查點進程(日志切換;上一個檢查點之后,又超過了指定的時間;預定義的日志塊寫入磁盤;例程關閉,DBA強制產生,表空間offline)
LCKn(0-9):封鎖進程.
Dnnn:調度進程.
內存結構(我們重點講解的)
內存結構=SGA(系統全局區)+PGA(程序全局區)
SGA就是我們所說的內存調優的主要對象。我們重點就是設置SGA
原則:SGA+PGA+OS使用內存<總物理RAM
1、SGA系統全局區.(包括以下五個區)
A、數據緩沖區:(db_block_buffers)存儲由磁盤數據文件讀入的數據。
大小: db_block_buffers*db_block_size
原文轉自:http://www.anti-gravitydesign.com