Oracle 性能调优学习笔记(五)-- buffer Cache调优B

诊断工具
       动态视图
     v$buffer_pool_statistics
     v$buffer_pool
     v$db_cache_advice
     v$sysstat
     v$sesstat
     v$system_event
     v$session_wait
     v$bh
     v$cache
       Statpack
    OEM的调优使用
   性能指示标志
       减少下面3个指标的信息
    Free buffer Inspected(检查):Sp检查LRU中是否有空闲buffer,等待时间.
    Free buffer wait(等待):DBWR写数据,sp的等待.
    Buffer busy waits:多个sp在使用同一个bock,sp等待.
    
     select name ,value from v$sysstat
         where name='free buffer inspected';
   
   select event,total_waits
         from v$system_event
       where event in
       ('free buffer waits','buffer busy waits');
   查找比较忙的块
   select * from v$event_name
    where name='buffer busy waits'
   buffer Cache的类型:
      默认buffer cache:
      Keep buffer cache:
      Recycle buffer cache:
      nk buffer cache:
           
   buffer 竞争等待原因
    数据块:
       sql查询不精确
       使用索引左边相同造成.
       v$session_wait提供文件和数据块的频繁等待.
             UNdo 
      非自动的undo表空间管理,需要增加回滚块.
    
             空闲buffer 等待原因
       DBWn赶不上脏数据增加.
     系统IO比较忙. 换磁盘
     IO等待资源如锁. 换磁盘,调整文件分布
     buffer cache很小. 增大buffer cache
     buffer cache很大,DBWN处理很忙.  开启多个DBWn
             计算Cache命中率
      Oracle 9I
      select 1-(phy.value -lob.value-dir.value)/ses.value "Cache Hit Ratio"
        from v$sysstat ses,v$sysstat lob, v$sysstat dir ,v$sysstat phy
     where ses.name='session logical reads'
     and dir.name='physical reads direct'  --直接从磁盘读取
     and lob.name='physical reads direct(lob)'  --不需要buffer cache中获取
     and phy.name='physical reads';  --总的磁盘读取数
    
     Oracle 11g
        consistent gets from cache:从buffer cache中获取的block的次数
     db block gets from cache: 当前块从buffer cache中请求的次数.
     physical reads cache:总的数据块从磁盘到buffer cache的次数.
     select name,value
        from v$sysstat
      where name in('db block gets from cache','consistent gets from cache',
      'physical reads cache');
     
    命中率: 1-(('physical reads cache')/('db block gets from cache'+'consistent gets from cache'))
           影响命中的因素
        数据访问方式影响
      1.全表扫描
      2.数据或者应用的设计问题
      3.大表的随即访问
      4.不均匀的缓存命中率分布
   命中率不是一切
           在命中率调整时候,需要查看v$db_cache_advice和命中率.
    多次读取比较大的表或者索引的时候,会降低命中率.可以
    将反复使用的数据缓存在中间层或者应用程序中.Oracle全表
    扫描信息将block放在LRU尾部.因此可能尽快的出局.
      命中率是调优的一部分.
      命中率并不决定数据是否需要调优.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值