查看library cache 命中率

SQL> desc v$librarycache
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAMESPACE					    VARCHAR2(15)
 GETS						    NUMBER
 GETHITS					    NUMBER
 GETHITRATIO					    NUMBER
 PINS						    NUMBER
 PINHITS					    NUMBER
 PINHITRATIO					    NUMBER
 RELOADS					    NUMBER
 INVALIDATIONS					    NUMBER
 DLM_LOCK_REQUESTS				    NUMBER
 DLM_PIN_REQUESTS				    NUMBER
 DLM_PIN_RELEASES				    NUMBER
 DLM_INVALIDATION_REQUESTS			    NUMBER
 DLM_INVALIDATIONS				    NUMBER
 
 [参数说明] 
GETS           : 某个object解析的时候查找的次数(解析阶段)
GETHITS        : NUMBER get命中次数
GETHITRATIO    : 等于gethits/gets
PINS           : 某个object 解析过后被执行的次数(发生在执行阶段)
PINHITS        : pin命中次数
PINHITRATIO    :这个值等于pinhits/pins
RELOADS        : 某个object 解析过后被从新加载的次数(需要从新从磁盘读取object),也就是没有被缓存到library cache中,这个通常由于shared pool 过小
INVALIDATIONS  :某个对象无效,通常由于对象定义被更改,需要从新解析

1.查看总的library cache pinhitratio 应该大于90%,最理想大于95%

SQL> select sum(pinhits)/sum(pins) pinhitratio from v$librarycache;

PINHITRATIO
-----------
 .916570607


SQL> select sum(pins)/(sum(pins)+sum(reloads)) reloadhitratio from v$librarycache;

RELOADHITRATIO
--------------
    .997046909


2.查看reloadhitratio 应该小于1%

SQL> select sum(reloads)/sum(pins) from v$librarycache;

SUM(RELOADS)/SUM(PINS)
----------------------
            .002959248


3.查看各个类型的library cache ratio, 看pinhitratio 这一行

SQL> select namespace,pins pinhits ,pinhitratio from v$librarycache;

NAMESPACE          PINHITS PINHITRATIO
--------------- ---------- -----------
SQL AREA            136089  .907935248
TABLE/PROCEDURE      54863  .917230192
BODY                 11053  .988057541
TRIGGER               2064  .994670543
INDEX                  239  .665271967
CLUSTER               4603  .996958505
OBJECT                   0           1
PIPE                     0           1
JAVA SOURCE              0           1
JAVA RESOURCE            0           1
JAVA DATA                0           1

11 rows selected.


4.查看当前 library cache 的大小

SQL> select sum(sharable_mem) from v$db_object_cache;

SUM(SHARABLE_MEM)
-----------------
         20775388


5.查看剩余的 shared pool

SQL> select * from v$sgastat where name='free memory' and pool='shared pool';

POOL         NAME                            BYTES
------------ -------------------------- ----------
shared pool  free memory                  86134880


ORACLE调优专家所推荐的长期运行的数据库的 library cache hitratio 最好应该在95%以上,sum(reloads)与sum(pins) 的比值应该小于 1%,如果pinhitratio 小于90%,或者reload ratio 大于1% ,而且shared pool 的free memory 很小或者为0,那么可以适当增加shared_pool的大小,检查应用程序代码效率,比如是否使用了绑定变量等等.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值