程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle內存結構

Oracle內存結構

編輯:Oracle教程

Oracle內存結構


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

Shared Pool:存放最近執行過的sql語句的執行結構(執行計劃)已經數據定義(數據字典).主要組成分為library cache,data 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_size,db_cache_size,db_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的相關操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved