Oracle記憶體體系結構
SGA(System Global Area) : SGA被所有伺服器和後臺程式共享, 它包含了可以在使用者之間共享的控制資訊以及資料。 例如:快取的資料塊和共享SQL區
SGA包含以下記憶體區域:
a. Shared pool: Caches various constructs that can be shared among users
包含了: 庫快取
-Shared SQL area
資料字典快取
控制結構
b. Database buffer cache: Caches blocks of data retrieved from the database
c. KEEP buffer pool: A specialized type of database buffer cache that is tuned to retain blocks of data in memory for long periods of time
d. RECYCLE buffer pool: A specialized type of database that is tuned to recycle or remove block from memory quickly
e. nK buffer cache: One of several specialized type of database buffer cache that is designed to hold block sizes different than the default database block size
f. Redo log buffer: caches redo information(used for instance recovery) util it can be written to the physical redo log files stored on the disk
g. Large pool: Option area that provides large memory allocations for certain large processes, such as Oracle backup and recovery operations, and I/O server process
大池專門用於以下情況:
大池專門用於以下情況:
? 共享伺服器連線,用於在SGA 中分配UGA 區
? 語句的並行執行,允許分配程式間的訊息緩衝區,這些緩衝區用於協調並行查詢伺服器。
? 備份,在某些情況下用於RMAN 磁碟I/O 緩衝區。
可以看到,這些記憶體分配都不應該在LRU 緩衝區池中管理,因為LRU 緩衝區池的目標是管理小塊的
記憶體。例如,對於共享伺服器連線記憶體,一旦會話登出,這個記憶體就不會再重用,所以應該立即返回到池
中。另外,共享伺服器UGA 記憶體分配往往“很大”。如果檢視前面使用SORT_AREA_RETAINED_SIZE 或
PGA_AGGREGATE_TARGET 的例子,可以看到,UGA 可能擴張得很大,成為絕對大於4 KB 的塊。把MTS
記憶體放在共享池中,這會導致把它分片成很小的記憶體,不僅如此,你還會發現從不重用的大段記憶體會導致
可能重用的記憶體老化。這就要求資料庫以後多做更多的工作來重建記憶體結構。
對於並行查詢訊息緩衝區也是如此,因為它們不能根據LRU 原則來管理。並行查詢訊息緩衝區可以
分配,但是在使用完之前不能釋放。一旦傳送了緩衝區中的訊息,就不再需要這個緩衝區,應該立即釋放。
對於備份緩衝區更是如此,備份緩衝區很大,而且一旦Oracle 用完了這些緩衝區,它們就應該“消失”。
使用共享伺服器連線時,並不是一定得使用大池,但是強烈建議你使用大池。如果沒有大池,而且使
用了一個共享伺服器連線,就會像Oracle 7.3 及以前版本中一樣從共享池分配空間。過一段時間後,這會
導致效能惡化,一定要避免這種情況。如果DBWR_IO_SLAVES 或者PARALLEL_MAX_SERVERS 引數設
置為某個正值,大池會預設為某個大小。如果你使用了一個用到大池的特性,建議你手動設定大池的大小。
i. Java pool: Used for all session-specific Java code and data in the Java Virtual Machine(JVM)
j. Streams pool: Used by Oracle Streams to store information required by capture and apply
在不關閉例項的情況下, database buffer cache, the shared pool, large pool, the Java pool和Streams pool的大小可以被改變(SGA的動態基礎架構)。Oracle資料庫使用初始化引數來建立管理記憶體結構。 最簡單的管理記憶體的方法是允許資料庫自動管理,調整。 我們只需要設定一個目標記憶體的初始化大小(MEMORY TARGET)和一個最大記憶體的初始化引數(MEMORY_MAX_TARGET)。
PGA: 程式當中包含資料以及控制資訊的記憶體區域。 PGA是程式開始執行時的專享記憶體區域, PGA的訪問是排他的。每一個伺服器程式和後臺程式都有它自己的PGA。
PGA包含兩個最主要的區域:stack space(棧空間?)和User Global Area(UGA)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-761603/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle體系結構之-記憶體結構Oracle記憶體
- Oracle體系結構之記憶體結構(SGA、PGA)Oracle記憶體
- Oracle體系結構:記憶體結構和程式結構(轉)Oracle記憶體
- oracle 記憶體結構Oracle記憶體
- oracle 記憶體結構(二)Oracle記憶體
- Oracle 記憶體結構(一)Oracle記憶體
- ORACLE 記憶體結構理解.Oracle記憶體
- [Virtualization]ESXi體系結構與記憶體管理(一)體系結構記憶體
- oracle 記憶體結構具體解釋Oracle記憶體
- 【基礎篇記憶體結構】oracle10g記憶體結構(一)記憶體Oracle
- oracle 例項記憶體結構Oracle記憶體
- oracle記憶體結構與管理Oracle記憶體
- DBA_Oracle基本體系記憶體和程式結構(概念)Oracle記憶體
- 記憶體結構記憶體
- [Virtualization]ESXi體系結構與記憶體管理(二)控制記憶體分配記憶體
- [Virtualization]ESXi體系結構與記憶體管理(三)控制記憶體分配記憶體
- Oracle OCP(39):Database 記憶體結構OracleDatabase記憶體
- Oracle中Buffer Cache記憶體結構Oracle記憶體
- Oracle記憶體結構研究-PGA篇Oracle記憶體
- Oracle記憶體結構研究-SGA篇Oracle記憶體
- Postgresql資料庫體系結構-程式和記憶體結構SQL資料庫記憶體
- 結構體記憶體對齊結構體記憶體
- 【JVM】堆體系結構及其記憶體調優JVM記憶體
- Oracle例項的程式結構和記憶體結構Oracle記憶體
- PostgreSQL:記憶體結構SQL記憶體
- JVM記憶體結構JVM記憶體
- Oracle面試寶典-記憶體結構篇Oracle面試記憶體
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- x64 結構體系下的記憶體定址結構體記憶體
- ORACLE例項的程式結構和記憶體結構(轉)Oracle記憶體
- MySQL整體架構與記憶體結構MySql架構記憶體
- Oracle記憶體結構(四)----如何獲得Oracle各記憶體段的內部資訊(轉)Oracle記憶體
- Memory Dumps(ORACLE記憶體結構轉儲)Oracle記憶體
- oracle記憶體結構:SGA的區域資訊Oracle記憶體
- Oracle記憶體結構:ProcessMemory的詳細資訊Oracle記憶體SSM
- 調節記憶體結構記憶體
- Oracle體系結構學習筆記Oracle筆記
- 1.oracle體系結構(筆記)Oracle筆記