db block gets 与 consistent read gets
对这两个概念一直模模糊糊,今天打算把它弄个明白。弄清楚这两个概念对于理解
logical reads,physical read s至关重要。
consistent read get:从buffer cache 中一致性读取(consistent read)的block 的数量。
db block get :从buffer cache 中读取的current mode 的block 的数量。
为了更好的理解这两个概念我们得先来说说buffer cache 的模式。
current mode :current mode get 也叫做 db block get,从buffer cache 中检索出来
的数据块的数据是当前模式的。对当前模式我们可以通过下面这个列子来理解。比如一个
未提交的事务,更新了一个数据块中的两条记录,db block gets就能够看到这些未提交的记录
(因为读取的block是当前状态的)。所以在insert,update,delete 的语句中能够经常看到db block gets。
consistent mode:
consistent read gets 读取的是读一致性的block,因此如果需要读取的数据所在的
block 已经被修改过了,那么将会使用nudo data。比如一个未提交的事务更新了block 中的
两条记录,另外一个会话请求该block 中的数据,oracle 将会使用undo data 来提供读一致性。
所以不能看到更新以后的数据。典型情况下,select 语句只会产生读一致性。
扩展:
physical read:指定是使用磁盘IO将数据读入data buffer cache。读入data buffer cache 中的
blocks 将会被consistent read gets.
所以总的读取的blocks(logical I/O)等于db block gets + consistent read gets,明白了这一点对于
对于理解buffer cache hit ratio 也很简单了。
select 1-sum(decode(name,'physical reads',value,0))/
(sum(decode(name,'db block gets',value,0))+
sum(decode(name,'consistent gets',value,0))) "Buffer cache hit ratio"
from v$sysstat;
另外对于这个buffer cache hit ratio 不要太在意,因为这和系统当前的工作状态有关系的。
特别是在OLAP系统中更是不要为这个hit ratio 所迷惑,因为OLAP系统的特性决定了hit ratio
不可能很高。下面就是一个伪造hit ratio 的例子,命中率中80%提高到了98%。但是并不是说
这个hit ratio 不重要关键是要明白当前系统的运行状态,系统的类型。改变解决问题的角度不是
从hit ratio 入手,而是通过做其他方面的工作来提高这个hit ratio(如果有必要的话).
SQL> select 1-sum(decode(name,'physical reads',value,0))/
2 (sum(decode(name,'db block gets',value,0))+
3 sum(decode(name,'consistent gets',value,0))) "Buffer cache hit ratio"
4 from v$sysstat;
Buffer cache hit ratio
----------------------
.804517936
SQL> ed
Wrote file afiedt.buf
1 declare
2 dum dual.dummy%type;
3 begin
4 for i in 1..1000000 loop
5 select dummy into dum
6 from dual;
7 end loop;
8* end;
SQL> /
PL/SQL procedure successfully completed.
SQL> select 1-sum(decode(name,'physical reads',value,0))/
2 (sum(decode(name,'db block gets',value,0))+
3 sum(decode(name,'consistent gets',value,0))) "Buffer cache hit ratio"
4 from v$sysstat;
Buffer cache hit ratio
----------------------
.982396189
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-730452/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26110315/viewspace-730452/