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

Oracle資料庫調優核心指標計算與閾值參考:命中率、排序、PGA全維度

     編輯:Oracle 資料庫基礎

七大關鍵命中率指標SQL查詢、計算公式與健康閾值速查表

系統化整理Oracle效能診斷核心指標,提供即時可執行的SQL與判讀標準,支援DBA快速健檢。

指標速查總表

#指標計算公式健康閾值調優方向
1Library Cache Hit RatioSUM(PINHITS)/SUM(PINS)> 98%增大Shared Pool、使用綁定變數、調整CURSOR_SHARING
2Shared Pool 記憶體使用率(1 - FREE_MEM/TOTAL_SGA)*10075%-90%過低浪費、過高隱患 ORA-04031
3Buffer Cache Hit Ratio1 - PHYSICAL_READS/(DB_BLOCK_GETS+CONSISTENT_GETS)> 90%增大DB_CACHE_SIZE、優化高耗SQL、索引調優
4Data Buffer Hit Ratio(官方精確版)1 - (PHY_READS - DIRECT_READS - LOB_READS)/(LOGICAL_READS - DIRECT_READS - LOB_READS)> 90%排除Direct Path/Lob讀取干擾,更精確
5Shared Pool Hit Ratio(含Reload)SUM(PINHITS-RELOADS)/SUM(PINS)*100> 95%低於閾值檢查綁定變數使用率、增大Shared Pool
6記憶體排序比率SORTS(MEMORY)/(SORTS(MEMORY)+SORTS(DISK))*100越高越好磁盤排序過多 → 增大PGA/SORT_AREA_SIZE
7PGA Cache Hit PercentageBytes Processed / (Bytes Processed + Extra Bytes RW) * 100> 50%(建議>90%)參考V$PGA_TARGET_ADVICE建議值調整PGA_AGGREGATE_TARGET

即時監控SQL集錦


-- 1. Library Cache
SELECT SUM(pinhits)/SUM(pins) "Lib Cache Hit Ratio" FROM v$librarycache;

-- 2. Shared Pool 使用率
SELECT (1-ROUND(bytes/(&tsp_m*1024*1024),2))*100 || '%' "Usage%"
FROM v$sgastat WHERE name='free memory' AND pool='shared pool';

-- 3. Buffer Cache (簡易版)
SELECT 1 - (physical_reads/(db_block_gets+consistent_gets)) "Hit Ratio"
FROM v$buffer_pool_statistics WHERE name='DEFAULT';

-- 4. 精確版命中率所需統計值
SELECT name, value FROM v$sysstat
WHERE name IN ('session logical reads','physical reads',
  'physical reads direct','physical reads direct (lob)',
  'db block gets','consistent gets');

-- 5. Shared Pool (含Reload)
SELECT SUM(pinhits-reloads)/SUM(pins)*100 "Hit Ratio" FROM v$librarycache;

-- 6. 排序統計
SELECT name, value FROM v$sysstat WHERE name LIKE '%sort%';

-- 7. PGA 建議值曲線
SELECT ROUND(pga_target_for_estimate/1024/1024) target_mb,
       estd_pga_cache_hit_percentage cache_hit_pct
FROM v$pga_target_advice;

-- 8. 工作區執行模式分布
SELECT name, value, ROUND(value*100/SUM(value) OVER (),2) pct
FROM v$sysstat WHERE name LIKE 'workarea exec%';

進階調優建議

  • 命中率非絕對真理:高命中率不等於高效能,需結合等待事件、SQL耗時、業務SLA綜合判斷
  • 建立基線:記錄正常業務時段各指標基線,異常時對比偏移量
  • 自動記憶體管理(AMM/ASMM)優先:11g+建議啟用MEMORY_TARGET或SGA_TARGET/PGA_AGGREGATE_TARGET,減少手動調整
  • 關注V$PGA_TARGET_ADVICE曲線拐點:PGA分配至曲線平緩處即為投資報酬最佳點
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved