解决方案 »

  1.   

    buffer cache 写命中率?
    这个只是比较缓存写和磁盘写对比,意义不是很大。至于为负数,看看是否physical writes direct统计信息的值较大
      

  2.   

    是的,physical writes direct 和physical writes一样,都很大,上面图上可以看到。
    算法应该是不对的吧?不是buffer cache写命中率,而是共享池的写命中率,应该怎么算呢?
    (db block changes +  consistent changes)/ (db block changes +  consistent changes + physical writes)
    可对?
      

  3.   

    刚才没注意看。这里应该用(physical writes-physical writes direct)来做磁盘写。physical writes direct应该从physical writes中减去,因为这部分数据没有经过buffer cache,不应该加入比较。如果这段时间恰好直接路径写操作比较多,你原来的结果就有可能出现负数这些是buffer cache的统计信息
    共享池没有所谓写命中率,只有library hit
    SELECT (SUM(PINS) -
            SUM(RELOADS))/SUM(PINS)
            FROM V$LIBRARYCACHE;
      

  4.   


    计算library hit的这种方法我也看到过。
    “oracle数据库共享内存写命中率”这个指标难道不是“共享池的写命中率”???
    那该是什么啊?
    难道是SGA的写命中率?
      

  5.   

    这个指标从哪儿看到的
    共享内存是操作系统的概念,SGA位于共享内存上,和共享池的概念有很大区别。Oracle占用的共享内存主体是buffer cache
    要算的话可以用(db block changes + consistent changes - (physical writes-physical writes direct))/(db block changes + consistent changes)
    而且称为写命中率也不大准确