Oracle內存結構

Oracle的內存結構分爲SGAPGA,對於SGA是動態分配的,通過參數sga_max_size進行配置,oracle數據庫實例啓動的時候就已經分配好,對於所有的會話連接共享一個SGA;對於PGA則是每個用戶的會話連接創建一個自己的PAG的內存區域。

 

Shared Pool:存放最近執行過的sql語句的執行結構(執行計劃)已經數據定義(數據字典).主要組成分爲library cachedata dictionary cache。其中大小的決定參數是shared_pool_size

 

對於library cache主要是存放shared sql area 和 shared pl/sql area 這兩個區域塊

 

對於 data dictionary cache 主要是用於存放數據系統,系統的動態性能視圖和系統表

 

對於SGA的重頭戲 database buffer cache 主要是用來存放data數據文件的數據塊,把硬盤中的數據讀取直接存放到內存中,提高數據的操作速度。對於用戶對數據的操作,首先是找database buffer cache中的數據,如果可以找到就直接返回數據,不再從硬盤中找,提高數據響應速度。反應數據庫性能的一個重要指標就是database buffer cache的命中率.其中主要的參數有:db_keep_cache_sizedb_cache_sizedb_recycle_cache_size

 

Redo log buffer:是數據文件redo log的緩存,如果需要恢復數據,讀取redo log 文件的話,會先從 redo log buffer 裏面讀取數據庫的操作記錄。對於數據庫的操作記錄也是先寫入到redo log buffer,然後在存儲到 數據文件 redo log files 

 

Larger pool: Rman備份的時候會使用larger pool 進行數據的緩存,某些server procees I/O操作也是需要使用larger pool 進行數據的緩存。

 

Java pool: 大小決定於參數java_pool_size,對於oracle中使用java語言寫的方法在執行的時候就是使用java pool這個存儲區域。該緩存區域主要是用於java的相關操作。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章