oracle 記憶體結構
1.基礎結構
oracle記憶體結構主要包括四部分:SGA(系統全域性區)PGA(程式全域性區)UGA(使用者全域性區)和軟體程式碼區域。
其中,
SGA:主要存放oracle的共享資料和控制資訊。該區域被所有的伺服器程式和後臺程式共享。
PGA:存放某一個oracle程式的資料和控制資訊,這些程式可以是伺服器程式,也可以是後臺程式。
UGA:存放與使用者會話資訊有關的內容,例如使用者登入資訊等。UGA由兩部分組成:session variable 和OLAP POOL。
在共享伺服器模式下,UGA在SGA中存在,而在專用伺服器模式下,UGA在PGA中存在。原因是UGA存放著使用者會話的資訊,該區域需要在會話的整個生命週期內都是可用的。共享伺服器模式下,UGA需要記錄多個使用者的資訊,而PGA是每個程式專有區域,無法實現記錄多使用者會話資訊功能,而SGA是所有程式共享的,所以共享模式下,UGA存在於SGA中。
軟體程式碼區域:主要存放oracle軟體執行所需要的程式碼,該記憶體區域和其他記憶體區域分開,單獨存在。
2.記憶體管理方式
主要包括:自動記憶體管理、自動共享記憶體管理和手工記憶體管理
其中,
自動記憶體管理:指定例項將用到的記憶體總大小,例項將會自動在SGA和PGA之間進行分配。
自動共享記憶體管理:該管理方式為部分自動化,即設定SGA大小,並可選的設定PGA大小。讓SGA記憶體自動管理的同時單獨對PGA進行管理。
手工記憶體管理:透過初始化引數,手工管理SGA和PGA。
3.PGA
PGA理解:打個比喻,PGA就像是文件管理員的臨時工作空間。而文件管理員就代表著替客戶端程式(client process)幹活的伺服器程式(server process)。伺服器程式建立後,在PGA中分配一塊記憶體,用於存放使用者請求的具體資訊,並將使用者請求的結果進行排序,結果返回後,釋放工作空間。
PGA的內容:SQL WORK AREA(排序區、HASH區、點陣圖合併區)、session memory和private SQL area(persistent area和runtime area)
其中,
private SQL area:存放已經解析的SQL語句和會話相關的資訊。當一個伺服器程式執行SQL或者PL/SQL程式碼的時候,伺服器程式使用private SQL area來儲存繫結變數的值(persistent area,只有當遊標關閉,才釋放該區域),查詢執行的狀態資訊和查詢執行工作區域(runtime area,DML中,語句結束,則該區域釋放)。
SQL work area:該區域主要存放記憶體密集型的操作,比如排序,hash連線,點陣圖連線等。
當啟用PGA自動記憶體管理時,資料庫會自動調整SQL work area的大小。
共享伺服器模式和專用伺服器模式下的PGA記憶體分配:
Memory area |
Dedicated server |
Shared server |
Nature of session |
Private |
Shared |
Location of the persistent area |
PGA |
SGA |
Location of the run-time area for DML/DDL statements |
PGA |
PGA |
4.SGA
SGA是隨著資料庫例項後臺程式啟動而啟動的。當然,伺服器程式也可以訪問SGA,其只是在資料庫操作時,可以往裡面寫內容。
每個例項都有自己的SGA(RAC環境具有多個例項,多個SGA)。
SGA的主要元件:database buffer cache/ redo log buffer/ shared pool/ large pool/ java pool/ stream pool/ fixed SGA
5.軟體程式碼區域
軟體程式碼區域是儲存正在執行或準備執行的程式碼的一塊記憶體區域,這塊區域比較特殊,被oracle區別於使用者程式單獨存放並儲存起來。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30167136/viewspace-1558279/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle體系結構之-記憶體結構Oracle記憶體
- Oracle記憶體體系結構Oracle記憶體
- oracle 記憶體結構(二)Oracle記憶體
- Oracle 記憶體結構(一)Oracle記憶體
- ORACLE 記憶體結構理解.Oracle記憶體
- oracle 例項記憶體結構Oracle記憶體
- oracle記憶體結構與管理Oracle記憶體
- Oracle體系結構:記憶體結構和程式結構(轉)Oracle記憶體
- 【基礎篇記憶體結構】oracle10g記憶體結構(一)記憶體Oracle
- Oracle體系結構之記憶體結構(SGA、PGA)Oracle記憶體
- oracle 記憶體結構具體解釋Oracle記憶體
- Oracle OCP(39):Database 記憶體結構OracleDatabase記憶體
- Oracle中Buffer Cache記憶體結構Oracle記憶體
- Oracle記憶體結構研究-PGA篇Oracle記憶體
- Oracle記憶體結構研究-SGA篇Oracle記憶體
- 記憶體結構記憶體
- Oracle例項的程式結構和記憶體結構Oracle記憶體
- Oracle面試寶典-記憶體結構篇Oracle面試記憶體
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- ORACLE例項的程式結構和記憶體結構(轉)Oracle記憶體
- PostgreSQL:記憶體結構SQL記憶體
- JVM記憶體結構JVM記憶體
- Memory Dumps(ORACLE記憶體結構轉儲)Oracle記憶體
- oracle記憶體結構:SGA的區域資訊Oracle記憶體
- Oracle記憶體結構:ProcessMemory的詳細資訊Oracle記憶體SSM
- Oracle記憶體結構(四)----如何獲得Oracle各記憶體段的內部資訊(轉)Oracle記憶體
- 結構體記憶體對齊結構體記憶體
- 調節記憶體結構記憶體
- Oracle記憶體結構(一)----SGA的區域資訊Oracle記憶體
- DBA_Oracle基本體系記憶體和程式結構(概念)Oracle記憶體
- MySQL整體架構與記憶體結構MySql架構記憶體
- Oracle記憶體結構(一)----SGA的區域資訊(轉)Oracle記憶體
- Oracle記憶體結構(三)----Process Memory的詳細資訊Oracle記憶體
- Oracle10g data buffer cache的記憶體結構Oracle記憶體
- 理解JVM(一):記憶體結構JVM記憶體
- JVM(七):JVM記憶體結構JVM記憶體
- shared pool記憶體結構記憶體
- Buffer Cache的記憶體結構記憶體