| 版本 | 里程碑 | 關鍵參數 |
|---|---|---|
| 8i → 9i | PGA 自動管理 | PGA_AGGREGATE_TARGET |
| 9i → 10g | SGA 自動管理 (ASMM) | SGA_TARGET |
| 10g → 11g | 記憶體全自動管理 (AMM) | MEMORY_TARGET, MEMORY_MAX_TARGET |
11g AMM 將 SGA 與 PGA 統一納入單一記憶體池動態分配,DBA 僅需設定兩個參數。
MEMORY_MAX_TARGET 限制。MEMORY_TARGET 的硬性上限,靜態參數,修改需重啟實例。相容性:若只設 SGA_TARGET/PGA_AGGREGATE_TARGET,11g 退化為 10g ASMM 模式;若都不設,退化為 9i/8i 手動模式。
SELECT component, current_size, min_size, max_size
FROM v$memory_dynamic_components
ORDER BY component;
輸出範例:
| COMPONENT | CURRENT_SIZE | MIN_SIZE | MAX_SIZE |
|---|---|---|---|
| shared pool | 130,023,424 | 109,051,904 | 130,023,424 |
| large pool | 4,194,304 | 4,194,304 | 4,194,304 |
| java pool | 4,194,304 | 4,194,304 | 4,194,304 |
| SGA Target | 322,961,408 | 322,961,408 | 322,961,408 |
| DEFAULT buffer cache | 176,160,768 | 176,160,768 | 197,132,288 |
| PGA Target | 218,103,808 | 213,909,504 | 218,103,808 |
SHOW PARAMETER memory_target;
-- NAME TYPE VALUE
-- memory_target big integer 516M
SELECT (322961408 + 218103808)/1024/1024 || 'M' AS "SGA+PGA" FROM dual;
-- SGA+PGA
-- 516M ← 精確等於 MEMORY_TARGET
V$SGASTAT WHERE POOL IS NULL 可見:fixed_sga (1,375,792) + log_buffer (5,804,032) = 7,179,824,差值 1,208,784 為其他微小固定結構。Shared IO Pool 現值 0,屬 PGA 範疇,用於緩解進程 I/O 等待。若出現非零值,表示系統正動態分配緩衝區應對 I/O 壓力。
ALTER SYSTEM SET SGA_TARGET=0 SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=0 SCOPE=SPFILE;
ALTER SYSTEM SET MEMORY_MAX_TARGET=2G SCOPE=SPFILE;
ALTER SYSTEM SET MEMORY_TARGET=1.5G SCOPE=BOTH;
-- 重啟實例生效 MEMORY_MAX_TARGET
-- 增加總記憶體(不超過 MAX_TARGET)
ALTER SYSTEM SET MEMORY_TARGET=1.8G SCOPE=BOTH;
-- 僅調整當前實例(重啟失效)
ALTER SYSTEM SET MEMORY_TARGET=1.6G SCOPE=MEMORY;
V$MEMORY_DYNAMIC_COMPONENTS:元件級分配追蹤。V$MEMORY_TARGET_ADVICE:目標值建議(模擬不同大小下的估計 DB Time)。V$PGA_TARGET_ADVICE、V$SGA_TARGET_ADVICE:子池建議。/dev/shm),大小必須 ≥ MEMORY_MAX_TARGET。df -h /dev/shm 確認,不足時掛載更大:mount -o remount,size=4G /dev/shm。SGA_TARGET、PGA_AGGREGATE_TARGET)。V$MEMORY_TARGET_ADVICE 顯示 ESTD_DB_TIME 隨目標值下降則受益明確;平坦曲線表示記憶體非瓶頸。Oracle 11g AMM 以 MEMORY_TARGET/MEMORY_MAX_TARGET 兩參數實現 SGA+PGA 統一池化管理,大幅降低 DBA 記憶體調優門檻。關鍵在於:確保 /dev/shm 足夠、避開 HugePages、善用 *_ADVICE 視圖科學決策。對於記憶體壓力大、負載波動劇烈的系統,AMM 是極具性價比的選擇。