《深入解析Oracle》第五章,記憶體管理
本章內容主要是講解Oracle的PGA,SGA的記憶體分配問題
整體上和自己以前瞭解的相一致
當然,程度更加深入
簡單記錄一些
PGA,程式全域性區,可分為固定、可變兩部分
而可變PGA區是DBA更關心的
其中包括會話記憶體(存放session登入相關資訊)和私有SQL區(SQL執行狀態、遊標等資訊)
其中,每個使用者可開啟遊標數受到OPEN_CURSORS引數的限制
UGA,使用者全域性區,主要是使用者會話,遊標狀態等相關資料
CGA,呼叫全域性區,用於分析、執行SQL,獲取結果集
兩者預設情況包含在PGA中,也可由Oracle自行單獨劃分記憶體
V$PGASTST檢視可用於查詢PGA相關資訊
而10g之後的V$PROCESS檢視也提供了關於程式消耗PGA的相關欄位
SQL工作區分為三種模式(optimal,onepass,multipass)
一般情況,屬於optimal的操作越多表示資料庫效能越好
可通過V$SYSSTAT檢視查詢相關,以此作為PGA效能參考
V$PAG_TARGET_ADVICE,V$PGA_TARGET_ADVICE_HISTOGRAM
會給使用者提出一些用於調整PGA的參考數值
SGA,系統全域性區
可分為固定區,緩衝快取,共享池,重做日誌緩衝等子區(以前瞭解過)
V$SGASTST檢視可查詢相關資訊(但書上說因為bug等因素,數值不太準……)
SGA的設定,儘量小於作業系統的shmmax,最大共享記憶體(Windows系統無需特別注意)
V$DB_CACHE_ADVICE,V$SHARED_POOL_ADVICE
為使用者提供SGA設定參考數值
當Oracle發展到現在,對於記憶體管理已經可以完全自動化了
以個人接觸最多的10g來說
PGA,SGA都有各自的引數用來指定是否由Oracle自動分配,並可設定記憶體額度
另外,Oracle也給出不同資料庫環境的設定建議
OLTP系統中,Oracle應使用不大於系統總記憶體80%的記憶體數
其中PGA使用份額大約是Oracle使用記憶體總數的20%
而對於DSS系統,總記憶體數不變,PGA使用量大約為50%
不正確的記憶體引數設定,將可能導致無法連線Oracle,CPU佔有率過高等問題
書中還介紹了很多隱含引數以及細節原理,就不一一記錄了
總的說來,本週進度還算可以接受
希望下週可以繼續保持這種狀態
不過……第六章是個比較難啃的骨頭,近100頁
大概進度要受到不少影響了 ◎◎
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/556359/viewspace-580551/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讀書筆記:深入解析oracle-第5章 記憶體管理筆記Oracle記憶體
- Oracle 記憶體管理Oracle記憶體
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- 深入理解JVM之記憶體管理JVM記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- Oracle 記憶體管理方式Oracle記憶體
- 記憶體管理 記憶體管理概述記憶體
- 2 Day DBA-管理Oracle例項-管理記憶體-修改記憶體設定-自動記憶體管理Oracle記憶體
- 2 Day DBA-管理Oracle例項-管理記憶體-關於記憶體管理Oracle記憶體
- Innodb記憶體管理解析[轉載]記憶體
- ORACLE記憶體管理 之一 ORACLE PGAOracle記憶體
- Python深入 Python的記憶體管理Python記憶體
- 深入淺出Netty記憶體管理 PoolChunkNetty記憶體
- 深入淺出Netty記憶體管理:PoolArenaNetty記憶體
- 深入淺出Netty記憶體管理:PoolChunkListNetty記憶體
- 深入淺出Netty記憶體管理:PoolSubpageNetty記憶體
- 深入淺出Netty記憶體管理:PoolChunkNetty記憶體
- Linux堆記憶體管理深入分析Linux記憶體
- ORACLE 記憶體管理 之四 SGAOracle記憶體
- oracle的自動記憶體管理Oracle記憶體
- oracle記憶體結構與管理Oracle記憶體
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- Java 8 記憶體管理原理解析及記憶體故障排查實踐Java記憶體
- Python深入06 Python的記憶體管理Python記憶體
- 【記憶體管理】記憶體佈局記憶體
- 將手動記憶體管理變為自動管理記憶體 ORACLE 11G記憶體Oracle
- 【Oracle-記憶體管理】-Multiple Block SizesOracle記憶體BloC
- 記憶體管理記憶體
- Python記憶體管理機制-《原始碼解析》Python記憶體原始碼
- 記憶體管理兩部曲之實體記憶體管理記憶體
- Linux堆記憶體管理深入分析(下半部)Linux記憶體
- 【Linux】深入理解Linux中記憶體管理Linux記憶體
- Go:記憶體管理與記憶體清理Go記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- Aerospike的bin記憶體管理--即列記憶體管理ROS記憶體
- Oracle 記憶體自動管理--關閉自動管理Oracle記憶體
- oracle 11g自動記憶體管理Oracle記憶體