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

Oracle 10g ASMM自動SGA內存管理深度解析與調優實戰

     編輯:Oracle 資料庫基礎

什麼是ASMM

Automatic Shared Memory Management (ASMM)是Oracle 10g引入的里程碑特性:DBA只需設定SGA_TARGET總量,實例自動在四大核心組件間動態再平衡內存,告別9i時代手工試錯調整DB_CACHE_SIZE、SHARED_POOL_SIZE的痛苦。

啟用前提

  • SGA_TARGET > 0(動態可調,上限受SGA_MAX_SIZE限制)
  • STATISTICS_LEVEL = TYPICAL 或 ALL(關鍵:需統計歷史信息支撐決策)

SGA組件分類與自動/手動界線

類別組件參數說明
自動調優默認緩衝區緩存DB_CACHE_SIZE數據塊緩存,最大消費者
共享池SHARED_POOL_SIZESQL/PLSQL解析樹、字典緩存
大池LARGE_POOL_SIZE並行查詢、RMAN、共享服務器UGA
Java池JAVA_POOL_SIZEJVM堆內存
手動管理重做日誌緩存LOG_BUFFER由實例根據日誌組大小固定分配
流池STREAMS_POOL_SIZEStreams捕獲/應用進程
非標準塊大小緩存DB_nK_CACHE_SIZE2K/4K/8K/16K/32K塊緩存
KEEP緩存DB_KEEP_CACHE_SIZE熱點對象鎖定區
RECYCLE緩存DB_RECYCLE_CACHE_SIZE大掃描對象快速淘汰區

動態查看與驗證

-- 查看各組件當前大小、是否可調、粒度
SELECT * FROM V$SGAINFO;

-- 查看自動調優目標值(雙下劃線參數,持久化於SPFILE)
SHOW PARAMETER __db_cache_size;
SHOW PARAMETER __shared_pool_size;
SHOW PARAMETER __large_pool_size;
SHOW PARAMETER __java_pool_size;

核心運作機制

  1. 初始分配:實例啟動時,SGA_TARGET - 手動組件總和 = 可自動分配內存,按內部算法分配給四大自動組件。
  2. 運行時再平衡:MMAN進程每60秒採樣一次負載指標(緩存命中率、庫緩存命中率、大池分配失敗數等),發起內存轉移。
  3. 持久化記憶:正常關閉(SHUTDOWN NORMAL/IMMEDIATE)時,雙下劃線參數寫入SPFILE,下次啟動直接恢復「成熟狀態」,避免冷啟動抖動。
  4. 最小值保護:若業務知曉某組件底線(如共享池不低於200M),可顯式設定SHARED_POOL_SIZE=200M。實例不會縮小低於此值,但會限制彈性。

遷移與升級注意事項

  • 9i升級10g:SGA_MAX_SIZE默認等於原手工SGA總和,升級前務必預留增長空間(如設為物理內存60-70%)。
  • 從手工切換ASMM:先觀察V$SGA_TARGET_ADVICE建議值,再設定SGA_TARGET,觀察V$SGA_RESIZE_OPS調整歷史。
  • ASMM與AMM(11gMEMORY_TARGET)互斥,不可同時啟用。

實戰調優清單

現象排查視圖典型對策
共享池頻繁ORA-04031V$SGA_RESIZE_OPS 顯示共享池持續縮小設定 SHARED_POOL_SIZE 最小值;檢查未綁定變量SQL
緩存命中率低V$SYSSTAT / V$BUFFER_POOL_STATISTICS增大 SGA_TARGET;啟用 KEEP 池鎖定熱點表
大池不足導致並行查詢降級V$PX_PROCESS_SYSSTAT設定 LARGE_POOL_SIZE 最小值;評估 PARALLEL_MAX_SERVERS
Java池OOMV$JAVA_POOL_ADVICE設定 JAVA_POOL_SIZE;排查Java存儲過程內存洩漏

總結

ASMM將SGA管理從「靜態配置」升級為「動態自適應」。DBA角色轉變為:設定總量上限(SGA_MAX_SIZE)、設定目標值(SGA_TARGET)、定義關鍵組件底線、監控V$SGA_RESIZE_OPS調整頻率與幅度。善用V$SGA_TARGET_ADVICE預測不同SGA_TARGET下的性能收益,是容量規劃的利器。

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