SGA调大?你调整了什么参数?PGA你是怎么调整的?数据库是9I?
高速缓存命中率从STATSPACK中看的?

解决方案 »

  1.   

    是 oracle9i,
    这些参数的查看和调整我都在oem中完成的。
      

  2.   

    你能不能记得你调整了什么参数?贴出来看看,我不知道OEM中的命中率是指数据库启动至今的命中率还是某一段时间的命中率,所以觉得它不一定对,建议你运行一段较长的时间以后再看看命中率是不是还是那么低。
      

  3.   

    内存参数的调整
    内存参数的调整主要是指ORACLE数据库的系统全局区(SGA)的调整。SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。1、    共享池由两部分构成:共享SQL区和数据字典缓冲区,共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息。数据库管理员通过执行下述语句:select (sum(pins - reloads)) / sum(pins) "Lib Cache"  from  v$librarycache;来查看共享SQL区的使用率。这个使用率应该在90%以上,否则需要增加共享池的大小。数据库管理员还可以执行下述语句:select (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache"  from v$rowcache;查看数据字典缓冲区的使用率,这个使用率也应该在90%以上,否则需要增加共享池的大小。2、    数据缓冲区。数据库管理员可以通过下述语句:SELECT name, value   FROM v$sysstat   WHERE name IN ('db block gets', 'consistent gets','physical reads');来查看数据库数据缓冲区的使用情况。查询出来的结果可以计算出来数据缓冲区的使用命中率=1 - ( physical reads / (db block gets + consistent gets) )。这个命中率应该在90%以上,否则需要增加数据缓冲区的大小。3、    日志缓冲区。数据库管理员可以通过执行下述语句:select name,value from v$sysstat where name in ('redo entries','redo log space requests');查看日志缓冲区的使用情况。查询出的结果可以计算出日志缓冲区的申请失败率:申请失败率=requests/entries,申请失败率应该接近于0,否则说明日志缓冲区开设太小,需要增加ORACLE数据库的日志缓冲区。
      

  4.   

    你可以通过动态性能表v$librarycache来查询从实例启动以来所有库高速缓存的活动情况
    v$librarycache表中以下几列反映了库高速缓存在执行调用阶段的不命中;pins,显示在库高速缓存中执行的次数;
    reload,显示在执行阶段库高速缓存不命中的数目如:select sum(pins) "请求存取数",sum(reloads) "不命中数"
    from v$librarycache一般sum(reloads)/sum(pins)的值应接近于零.如果大于1%就有问题了.通过动态性能表v$rowcache来查询数据字典高速缓存的活动select sum(gets) "请求存取数",sum(getmisses) "不命中数"
    from v$rowcache注:列gets,显示请求相应项的总数;
       getmisses,显示造成高速缓存不命中的数据请求数.不命中数与总存取数的比也应当接近于0,如果大于10%,应该增加shared_pool_size的值,
    来提高数据字典高速缓存可用的内存数量,减少不命中数.