• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
永不言弃,简单就好
每一个付出,都有回报,永远不放弃
博客园    首页    新随笔    联系   管理    订阅  订阅
[转]Oracle命中率查询,SGA调优
--数据高速缓存区命中率
  --计算公式: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
posted on 2009-07-27 15:00  嘎子  阅读(390)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3