网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  statspack中的library hit是如何计算的     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:127次  录入:管理员--2008-03-06  
 

通过本文的测试大家可以发现library hit是pin的命中率。

首先在通过statspack产生至report中。

library hit %: 79.58

从下面的示例中大家可以看到library hit 是如何计算出来的:

sql> select snap_id,gets,gethits,pins,pinhits from 
stats$librarycache where snap
_id in (1,2);
snap_id gets gethits pins pinhits
---------- ---------- ---------- ---------- ----------
1 1483 1385 1920 1780
1 271 253 710 688
1 167 4 187 24
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 7767 2061 102328 97310
1 10218 5604 23100 15402
1 81 63 902 878
2 1483 1385 1921 1781
2 271 253 710 688
2 167 4 187 24
2 0 0 0 0
2 0 0 0 0
2 0 0 0 0
2 0 0 0 0
2 0 0 0 0
2 7775 2061 105886 100586
2 10707 6002 24600 16151
2 81 63 902 878

已选择22行。

sql> select sum(gets),sum(gethits),sum(pins),
sum(pinhits) from stats$librarycach
e where snap_id=2;
sum(gets) sum(gethits) sum(pins) sum(pinhits)
---------- ------------ ---------- ------------
20484 9768 134206 120108

sql> select sum(gets),sum(gethits),sum(pins),
sum(pinhits) from stats$librarycach
e where snap_id=1;
sum(gets) sum(gethits) sum(pins) sum(pinhits)
---------- ------------ ---------- ------------
--首先看看是不是在计算library hit时考虑了library lock,
通过下面计算发现没有包括

19987 9370 129147 116082

sql> select 100*((9768 -9370 )+(120108 - 116082))/
((20484 - 19987)+(134206 -1291
47 )) from dual;
100*((9768-9370)+(120108-116082))/((20484-19987)+(134206-129147))
---------------------------------------------------------
79.6256299

--完全利用pin来验证一下发现没有问题!

sql> select 100*(120108 - 116082)/(134206 -129147 ) from dual;
100*(120108-116082)/(134206-129147)
-----------------------------------
79.5809449


--======================================

statspack package中计算library hit的函数如下:

function librarycache_hitratio return number is

/* returns library cache hit ratio for the begin and end (bid, eid)
snapshot id's specified
*/

cursor lh (i_snap_id number) is
select sum(pins), sum(pinhits)
from stats$librarycache
where snap_id = i_snap_id
and dbid = db_ident
and instance_number = inst_num;

bpsum number;
bhsum number;
epsum number;
ehsum number;

begin

if not lh%isopen then open lh (bid); end if;
fetch lh into bpsum, bhsum;
if lh%notfound then
raise_application_error
(-20100,'missing start value for stats$librarycache');
end if; close lh;

if not lh%isopen then open lh (eid); end if;
fetch lh into epsum, ehsum;
if lh%notfound then
raise_application_error
(-20100,'missing end value for stats$librarycache');

end if; close lh;

return (ehsum - bhsum) / (epsum - bpsum);

end librarycache_hitratio;


--=================
大家可以发现上面cursor lh (i_snap_id number) is
select sum(pins), sum(pinhits)
from stats$librarycache
的确只是计算了pin

 
 
上一篇: 通过rman backup as copy移动数据文件    下一篇: 在aix平台上监视cpu并实时获得sql语句
  相关文档
轻松掌握Oracle中事务管理的概念 09-29
Oracle和DB2间基本架构和管理的差异 04-11
教你快速掌握一个简单的oracle定时任务 03-14
创建物化视图提高查询速度 04-11
经验总结:一次oracle数据库冷备份恢复过程 08-18
排除cache影响手动强制刷新buffer cache 05-27
Oracle HA 在Unix上双机环境的安装指南 08-05
Oracle数据库中单行字符串函数简介 04-11
windows下oracle数据库进程的启动和关闭 06-10
oracle数据库定时jobs作业的使用方法 08-04
教你快速掌握oracle数据库结构的16个要点 04-15
数据字典管理的表空间存在着效率问题 09-01
讲解sql与oracle外键约束中的级联删除 05-29
详细讲解获得当前"scn"的几种有效方式 03-17
如何为用户提供回滚操作时间的准确评估 01-29
Oracle7.X 回滚表空间数据文件的误删除 06-03
Oracle智能代理与OMS的问题解答 05-27
如何在oracle中释放flash_recovery_area (1) 05-05
教你快速掌握oracle 9i数据库的移动过程 11-15
做Oracle的和作茶叶蛋的没有本质的区别 09-01
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息