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

Oracle 9i 資料緩衝區諮詢:DB_CACHE_ADVICE 完整操作指南

     編輯:Oracle 資料庫基礎

Oracle 9i 引入 V$DB_CACHE_ADVICE,可模擬 20 種緩衝區大小 (10%~200%) 的「未命中率」,輔助 DB_CACHE_SIZE 調整。因 9i 需維護多個緩衝區,此功能極具價值。

五大獨立緩衝區

  • DEFAULT 池
  • KEEP 池
  • RECYCLE 池
  • 2K/4K/8K/16K/32K 非標準區塊大小緩衝區

啟用與風險

-- 動態啟用 (會從 Shared Pool 竊取記憶體,影響 Library Cache)
ALTER SYSTEM SET DB_CACHE_ADVICE = ON;

-- 建議:啟動時預分配,避免運行期搶佔
-- init.ora 設定:
DB_CACHE_ADVICE = READY

Statspack 低命中率時段範例

日期小時緩衝區命中率
2001-01-2709DEFAULT45%
2001-01-2809RECYCLE41%
2001-01-2910DEFAULT36%
2001-01-3009DEFAULT28%
2001-02-0210DEFAULT83%

規則:命中率 < 90% 時考慮增加 DB_CACHE_SIZE。上表顯示每天 08:00-09:00 需求最大,可從 PGA_AGGREGATE_TARGET 借用記憶體。

DB_CACHE_ADVICE 模擬輸出解讀

緩衝區大小Buffers預估物理讀取因子預估物理讀取次數
30 MB (10%)3,80218.70192,317,943
60 MB (20%)7,60412.83131,949,536
91 MB (30%)11,4067.3875,865,861
121 MB (40%)15,2084.9751,111,658
152 MB (50%)19,0103.8539,620,124

隨緩衝區增大,物理讀取大幅下降。結合業務時段與記憶體預算,選擇拐點大小 (如 121 MB) 即可獲得最佳投報比。

操作流程總結

  1. 設定 DB_CACHE_ADVICE = READY 並重啟
  2. 運行代表性負載 (含尖峰時段)
  3. 查詢 V$DB_CACHE_ADVICE 取得模擬曲線
  4. 針對低命中率時段,規劃 DB_CACHE_SIZE 動態調整或靜態增大
  5. 持續監控 V$SYSSTAT 命中率驗證效果
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved