Oracle內存結構,是Oracle數據庫系統的重要組成部分,下面就為您介紹Oracle內存結構中的SGA內存結構,希望對您能有所幫助。
SGA是一組為系統分配的共享的內存結構,可以包含一個數據庫實例的數據或控制信息。如果多個用戶連接到同一個數據庫實例,在實例的SGA中,數據可以被多個用戶共享。 當數據庫實例啟動時,SGA的內存被自動分配;當數據庫實例關閉時,SGA內存被回收。 SGA是占用內存最大的一個區域,同時也是影響數據庫性能的重要因素。
SGA區是可讀寫的。所有登錄到實例的用戶都能讀取SGA中的信息,而在Oracle做執行操作時,服務進程會將修改的信息寫入SGA區。
SGA主要包括了以下的數據結構:
數據緩沖(Buffer Cache)
重做日志緩沖(Redo Log Buffer)
共享池(Shared Pool)
Java池(Java Pool)
大池(Large Pool)
流池(Streams Pool --- 10g以後才有)
數據字典緩存(Data Dictionary Cache)
其他信息(如數據庫和實例的狀態信息)
- 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 中的數據字典緩存 和其他信息 會被實例的後台進程所訪問,它們在實例啟動後就固定在SGA中了,而且不會改變,所以這部分又稱為固定SGA(Fixed SGA)。這部分區域的大小一般小於100K。
Shared Pool、Java Pool、Large Pool和Streams Pool這幾塊內存區的大小是相應系統參數設置而改變的,所以有通稱為可變SGA(Variable SGA)。