程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle命中率查詢,SGA調優

Oracle命中率查詢,SGA調優

編輯:關於Oracle數據庫

  --數據高速緩存區命中率

  --計算公式:1-(physical reads / (db block gets + consistent gets))

  --命中率應大於0.90最好
  
  select name,value
  from v$sysstat
  where name in ('physical reads','db block gets','consistent gets')
  /
  
  --共享區庫緩存區命中率

  --計算公式:SUM(pins - reloads) / SUM(pins)

  --命中率應大於0.99
  
  select sum(pins-reloads)/sum(pins)
  from v$librarycache
  /
  
  --共享區字典緩存區命中率

  --計算公式:SUM(gets - getmisses - usage -fixed) / SUM(gets)

  --命中率應大於0.85
  
  select sum(gets-getmisses-usage-fixed)/sum(gets)
  from v$rowcache
  /
  
  --檢測回滾段的爭用

  --SUM(waits)值應小於SUM(gets)值的1%
  
  select sum(gets),sum(waits),sum(waits)/sum(gets)
  from v$rollstat
  /
  
  --檢測回滾段收縮次數
  
  select name,shrinks
  from v$rollstat, v$rollname
  where v$rollstat.usn = v$rollname.usn
  /
  
  --關於SGA的調優
  
  (****) : OS 使用內存+ SGA + session*(sort_area_size + hash_area_size + 2M) < 總物理RAM 為好
  log_buffer : 128K ---- 1M 之間通常問題不大,不應該太大
  large_pool_size :如果不設置MTS,通常在 RMAN 、OPQ 會使用到,但是在10M --- 50M 應該差不多了。
  java_pool_size : 若不使用java,給30M通常就夠了
  data buffer ,在做了前面的設置後,凡可以提供給oracle的內存,都應該給data buffer = (db_block_size * db_block_buffers)

  不能設置 shared_pool_size 過大,通常應該控制在200M--300M
  
  再具體化,注意滿足上面(****) 的原則的基礎上可以參考如下設置

  如果512M RAM

  建議 shared_pool_size = 50M, data buffer = 200M
  
  如果1G RAM

  shared_pool_size = 100M , data buffer = 500M
  
  如果2G

  shared_pool_size = 150M ,data buffer = 1.2G
  
  物理內存再大已經跟參數沒有關系了

  假定64 bit ORACLE

  內存4G

  shared_pool_size = 200M , data buffer = 2.5G
  
  內存8G

  shared_pool_size = 300M , data buffer = 5G
  
  內存 12G

  shared_pool_size = 300M-----800M , data buffer = 8G

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved