Oracle的記憶體分配和使用
在Oracle9i之前,PGA的記憶體使用估算一直比較複雜;從Oracle 9i開始,Oracle的自動PGA管理新特性使得Oracle的記憶體規劃得以簡化。
根據Oracle的建議,Oracle最多可以使用80%的實體記憶體,其餘20%保留給作業系統使用,在這80%的記憶體中,對於OLTP系統,Oracle建議分配20%給PGA使用;對於DSS系統,可以分配50%給PGA使用,再引述一下前文的等式: 進一步歸納一下就是: 這是一個可以參考的數值,在為Oracle規劃記憶體使用時,我們必須清楚,如果Oracle耗用的記憶體過高,甚至超過了系統的實體記憶體,那麼系統的效能就會受到嚴重的影響,當系統執行任務時,如果沒有足夠的記憶體,那麼系統就會進行分頁或交換,以完成當前活動事務。
當系統執行分頁時,會將當前沒有使用的資訊從記憶體轉移到硬碟上,這樣就可以為當前需要記憶體的程式分配記憶體。如果頻繁發生分頁,系統效能就會嚴重降低,從而導致很多程式的執行時間變長。
當系統執行交換時,會將某些程式所分配的不活躍記憶體頁(根據LRU演算法)從記憶體轉移到硬碟上,這樣另一個活動程式就可以得到所需要的記憶體。交換基於系統迴圈時間。如果交換太過頻繁,系統甚至會出現當機。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-659605/,如需轉載,請註明出處,否則將追究法律責任。
·對於OLTP系統,PGA_AGGREGATE_TARGET=(
·對於DSS系統,PGA_AGGREGATE_TARGET=(
SGA+PGA *80%
也就是:
SGA_MAX_SIZE+PGA_AGGREGATE_TARGET <=
現在Oracle Database 11g引入了自動記憶體管理,這個公式得以進一步簡化:
MEMORY_TARGET <= MEMORY_MAX_TARGET <=
相關文章
- Oracle記憶體分配與使用(zt)Oracle記憶體
- oracle 記憶體分配和調優 總結Oracle記憶體
- oracle9i 的記憶體分配Oracle記憶體
- oracle資料庫記憶體分配(sga和pga)Oracle資料庫記憶體
- 簡單理解動態記憶體分配和靜態記憶體分配的區別記憶體
- Oracle的記憶體的分配、回收[final]Oracle記憶體
- Oracle記憶體分配與調整Oracle記憶體
- Go記憶體分配和GC的理解Go記憶體GC
- Oracle記憶體分配經驗法則Oracle記憶體
- Oracle PGA記憶體的配置和使用Oracle記憶體
- JavaScript記憶體分配JavaScript記憶體
- JVM記憶體分配JVM記憶體
- java記憶體分配Java記憶體
- 【SGA】【PGA】普適的Oracle記憶體分配策略Oracle記憶體
- Oracle記憶體分配與使用小記(二)Shared Pool and Large PoolOracle記憶體
- JVM垃圾回收和記憶體分配策略JVM記憶體
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- 核心記憶體分配常用函式使用記憶體函式
- 記憶體分配的確定記憶體
- weblogic的記憶體分配Web記憶體
- Memcache 記憶體分配策略和效能(使用)狀態檢查記憶體
- _ksmg_granule_size oracle記憶體分配粒度Oracle記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- JVM 記憶體模型 記憶體分配,JVM鎖JVM記憶體模型
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- 探索iOS記憶體分配iOS記憶體
- Java 記憶體分配策略Java記憶體
- java jvm 記憶體分配JavaJVM記憶體
- 動態記憶體分配記憶體
- [C++]記憶體分配C++記憶體
- C語言的記憶體分配C語言記憶體
- 物件的建立與記憶體分配物件記憶體
- go是如何分配記憶體的?Go記憶體
- 控制C++的記憶體分配C++記憶體
- 記憶體分配的隱藏成本記憶體
- 記憶體分配策略中,堆和棧的區別記憶體
- 窺探JVM記憶體分配和回收的過程JVM記憶體
- Go高階特性 14 | 記憶體分配:new 和 make 的使用場景Go記憶體