暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oralce数据库几个关键命中率的官方计算方法

原创 red_hope 2021-07-28
1419

这几个命中率的方法,如果你去百度,真是千奇百怪,大多是按照自己的意会在写,就拿buffer cache hit ratio来讲,百度前几页都不太准确,例如:

select round(((1-(sum(decode(name,'physical reads', value,0))/
(sum(decode(name, 'db block gets', value,0))
+(sum(decode(name, 'consistent gets', value, 0))))))*100),2)|| '%' "Buffer Cache Hit Ratio"
from v$sysstat;

复制

这个是百度上目前被接受度最高的,看上去这个没啥毛病,但oracle内部关于物理读,有很多计算内容,例如有直接路径读及lob等直接路径读的情况下,统计结果与官方的方法有很大差距。其实这些算法,在官网中有明确的计算方法,还是按照官方的计算为准比较好,避免出现争议:
(注):参考的时候,可能读取了不同版本,可以在对应的版本的《Database Performance Tuning Guide》中查找。

(1)buffer cache hit ratio:

select round(100-(phr.value)/(conc.value+dbbc.value)*100,2) prent
from v$sysstat phr,v$sysstat conc,v$sysstat dbbc
where phr.name='physical reads cache' and 
conc.name='consistent gets from cache' and dbbc.name='db block gets from cache';
复制

官方网址:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/tgdba/tuning-database-buffer-cache.html#GUID-E4018F9E-5A4B-41D0-8BCA-16191FC783BE

(2)library cache hit ratio

select round(sum(pinhits)/sum(pins)*100,2) "Library Cache Hit Ratio"
	from v\$librarycache;

复制

官方网址:
https://docs.oracle.com/en/database/oracle/oracle-database/21/tgdba/tuning-shared-pool-and-large-pool.html#GUID-CB036110-C43F-4265-8084-C721FEA037E0

(3)dictionary cache hit (row cache hit)

SELECT (SUM(gets - getmisses - fixed)) / SUM(gets) "row cache"
  FROM V$ROWCACHE;
复制

官方网址:
https://docs.oracle.com/en/database/oracle/oracle-database/21/tgdba/tuning-shared-pool-and-large-pool.html#GUID-220BC80E-FD16-4259-A7C1-E1967C510CAE

(4) pga命中率计算

select round(value,2) from V\$PGASTAT where NAME='cache hit percentage';
复制

官网地址:
https://docs.oracle.com/en/database/oracle/oracle-database/21/tgdba/tuning-program-global-area.html#GUID-892FC04E-16ED-435D-8DF3-8B74A379993B

最后修改时间:2021-07-28 11:44:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论