buffer pool hit ratio 和 buffer cache hit ratio有什么不同?

[复制链接]
查看11 | 回复4 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
几个不同buffer_pool组成了buffer cache,怎么这里还有两个命中率呢?
而且计算方式不同?
cache hit ratio =1-(physical reads-physical reads direct-physical reads (lob))/session logical reads
v$sysstat中,

buffer cache hit ratio
v$buffer_pool_statistics
cache hit ratio =1-physical reads/(db_block_gets+consistent_gets)

而且我看了下
这两个中的物理读还不一样啊,这是怎么回事啊
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
我也想知道。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
两者统计的范围不同
v$sysstat中:
physical reads 包括 direct reads
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
上机试了下;
SQL> select name,physical_reads from v$buffer_pool_statistics
2union
3select name,value from v$sysstat where name in ('physical reads','physical reads direct','physical reads direct (lob)');
NAME
PHYSICAL_READS
---------------------------------------------------------------- --------------
DEFAULT
2288
physical reads
2336
physical reads direct
48
physical reads direct (lob)
0

我的buffer 里只有一个default池,那么这里可以证实v$sysstat 的
physical reads -physical reads direct-physical reads direct (lob) =v$buffer_pool_statistics的PHYSICAL_READS
说明v$sysstat 的physical reads 是统计了整个系统的物理读,(不经过cache的也算在内),v$buffer_pool_statistics的PHYSICAL_READS只是统计了单个pool的物理读,自然不涉及到不通过buffer的reads,

SQL> select name,consistent_gets,db_block_gets from v$buffer_pool_statistics
2union
3select name,value,class from v$sysstat where name in ('session logical reads');
NAME
CONSISTENT_GETS DB_BLOCK_GETS
---------------------------------------------------------------- --------------- -------------
DEFAULT
71243 82561
session logical reads
131808
1
这是逻辑读的比较,在这里可以看到,
v$sysstat 的session logical readsv$buffer_pool_statistics的CONSISTENT_GETS+DB_BLOCK_GETS;

再看下;
SQL> select name,consistent_gets,db_block_gets from v$buffer_pool_statistics
2union
3 select name,value,class from v$sysstat where name in ('session logical reads','consistent gets','db block gets');
NAME
CONSISTENT_GETS DB_BLOCK_GETS
---------------------------------------------------------------- --------------- -------------
DEFAULT
73298 87573
consistent gets
124659
8
db block gets
14275
8
session logical reads
138934
1
在v$sysstat中也有 consistent gets ,db block gets这才是 consistent gets +db block gets= session logical reads ;
这里恐怕也有统计范围的问题吧,(这个和v$buffer_pool_statistics里面的consistent_gets和db_block_gets是怎么得到一致的呢)
我的水平有限,大家多来帮帮
-
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
帮你顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行