Oracle內(nèi)存結(jié)構(gòu)--SGA
Oracle內(nèi)存結(jié)構(gòu),是Oracle數(shù)據(jù)庫系統(tǒng)的重要組成部分,下面就為您介紹Oracle內(nèi)存結(jié)構(gòu)中的SGA內(nèi)存結(jié)構(gòu),希望對(duì)您能有所幫助。
SGA是一組為系統(tǒng)分配的共享的內(nèi)存結(jié)構(gòu),可以包含一個(gè)數(shù)據(jù)庫實(shí)例的數(shù)據(jù)或控制信息。如果多個(gè)用戶連接到同一個(gè)數(shù)據(jù)庫實(shí)例,在實(shí)例的SGA中,數(shù)據(jù)可以被多個(gè)用戶共享。 當(dāng)數(shù)據(jù)庫實(shí)例啟動(dòng)時(shí),SGA的內(nèi)存被自動(dòng)分配;當(dāng)數(shù)據(jù)庫實(shí)例關(guān)閉時(shí),SGA內(nèi)存被回收。 SGA是占用內(nèi)存最大的一個(gè)區(qū)域,同時(shí)也是影響數(shù)據(jù)庫性能的重要因素。
SGA區(qū)是可讀寫的。所有登錄到實(shí)例的用戶都能讀取SGA中的信息,而在oracle做執(zhí)行操作時(shí),服務(wù)進(jìn)程會(huì)將修改的信息寫入SGA區(qū)。
SGA主要包括了以下的數(shù)據(jù)結(jié)構(gòu):
數(shù)據(jù)緩沖(Buffer Cache)
重做日志緩沖(Redo Log Buffer)
共享池(Shared Pool)
Java池(Java Pool)
大池(Large Pool)
流池(Streams Pool --- 10g以后才有)
數(shù)據(jù)字典緩存(Data Dictionary Cache)
其他信息(如數(shù)據(jù)庫和實(shí)例的狀態(tài)信息)
- SQL> show sga
- Total System Global Area 612368384 bytes
- Fixed Size 1250428 bytes
- Variable Size 192940932 bytes
- Database Buffers 411041792 bytes
- Redo Buffers 7135232 bytes
SGA 中的數(shù)據(jù)字典緩存 和其他信息 會(huì)被實(shí)例的后臺(tái)進(jìn)程所訪問,它們?cè)趯?shí)例啟動(dòng)后就固定在SGA中了,而且不會(huì)改變,所以這部分又稱為固定SGA(Fixed SGA)。這部分區(qū)域的大小一般小于100K。
Shared Pool、Java Pool、Large Pool和Streams Pool這幾塊內(nèi)存區(qū)的大小是相應(yīng)系統(tǒng)參數(shù)設(shè)置而改變的,所以有通稱為可變SGA(Variable SGA)。
【編輯推薦】