首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 記憶體架構與 SGA/PGA 參數調優完整指南 (含 10g ASMM、11g AMM)

     編輯:Oracle 資料庫基礎

記憶體架構總覽

  • SGA (System Global Area):共享記憶體,所有 Server/Background Process 共用。
  • PGA (Program Global Area):私有記憶體,每個 Process 專用 (排序、雜湊、游標等)。
  • Shared Server (MTS) 模式下,PGA 中的 UGA 移至 SGA LARGE_POOL。

SGA 組成與對應參數

元件參數 (9i/10g+)說明
Fixed SGA—版本/平台固定,存放 SGA 結構指標
Variable SizeSHARED_POOL_SIZE, JAVA_POOL_SIZE, LARGE_POOL_SIZE, STREAMS_POOL_SIZE共用池、Java池、大池、流池
Database BuffersDB_CACHE_SIZE, DB_KEEP_CACHE_SIZE, DB_RECYCLE_CACHE_SIZE, DB_nK_CACHE_SIZE資料緩衝區 (預設/Keep/Recycle/nK)
Redo BuffersLOG_BUFFER重做日志緩衝

關鍵參數調優建議

LOG_BUFFER

  • LGWR 觸發寫入條件:滿 1/3、每 3 秒、達 1MB、Checkpoint 前、Commit 時。
  • 建議初始 3~5 MB,觀察 V$SYSSTAT REDO LOG SPACE REQUESTS 是否為 0 再微調。

SHARED_POOL_SIZE

  • OLTP 系統建議 100~300 MB (視 SQL 共用度、PL/SQL 物件量而定)。
  • ERP 等大量 Package 系統可能需 500 MB+。
  • 避免過大導致 CPU 檢索開銷增加。

LARGE_POOL_SIZE

  • 非 MTS:20~30 MB (平行查詢、RMAN 備份)。
  • MTS:依 SESSIONS × UGA 估算值 計算。

JAVA_POOL_SIZE

  • 未使用 Java:10~20 MB (最小 32K)。

SGA_TARGET / SGA_MAX_SIZE (10g ASMM)

  • 啟用 ASMM:設定 SGA_TARGET,Oracle 自動分配各池大小。
  • SGA_MAX_SIZE 為上限,動態調整不超過此值。
  • 建議值 (OLTP):1G RAM→400-500M, 2G→1G, 4G→2.5G, 8G→5G。

PGA_AGGREGATE_TARGET (10g 自動 PGA 管理)

  • 設定總 PGA 上限,Oracle 自動分配 SORT_AREA_SIZE、HASH_AREA_SIZE 等。
  • 典型配比:SGA 40~60%、PGA 20~40%、OS 保留 20%。

PRE_PAGE_SGA

  • TRUE:啟動時將所有 SGA 頁面載入實體記憶體,啟動較慢但運行即達峰值效能。
  • FALSE (預設):按需載入。

11g AMM (Automatic Memory Management)

單一參數 MEMORY_TARGET 統管 SGA+PGA,完全自動化,適合中小型系統;大型核心系統建議仍手動控制 SGA/PGA 比例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved