v$librarycache 学习

通过查看v$librarycache视图,可以监控library cache的活动情况,进一步衡量share pool设置是否合理。其中GETS,PINS比较复杂,目前还不能理解。http://www.itpub.net/thread-498204-1-1.html

GETHITS列,表示GET命中的次数;

PINHITS列,表示PIN命中的次数;

PINHITRATIO列,这个值等于PINHITS / PINS;

RELOADS列,表示 某个object 解析过后被重新加载的次数(需要重新从磁盘读取object),也就是没有被缓存 到library cache中,这个通常由于shared pool 过小 ,在一个设置合理的系统里,这个数值应该接近于0;

INVALIDATIONS列,表示对象失效的次数,对象失效后,这意味着sql必须要被重新解析。 

 

SELECT NAMESPACE, PINS, PINHITS, RELOADS, INVALIDATIONS FROM V$LIBRARYCACHE ;




 
 对这个查询的解释如下:

1,对于SQL AREA 来说,共执行了21121次。

2,其中26次查询导致了library cache miss,即要进行reload,因为它们已经被age out。

3,sql有110次失效,这同时导致了library cache miss。

 

查看总的library cache pinhitratio 的值应该大于90%,最理想的是大于95%。

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

 

 

 

SUM(PINHITS)/SUM(PINS)

----------------------

            .847688465

 

查看reloadhitratio 应该小于1%

 

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

 

 

SUM(RELOADS)/SUM(PINS)

----------------------

            .004114098

查看当前 library cache 的大小

select sum(sharable_mem) from v$db_object_cache;

 

 

SUM(SHARABLE_MEM)

-----------------

         29058308

 

查看剩余的 shared pool

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

 

 

POOL         NAME                            BYTES

------------ -------------------------- ----------

shared pool  free memory                  35636448


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值