过着简单,真实的生活,喜欢收藏变形金刚(TFE,G1,SL系列),研究金融股市,KOF98,篮球,学习研究Oracle技术,我并不是一个全职的Oracle DBA,但是对于Oracle技术的热爱和研究,是一个不争的事实,愿意结交广大Oracle技术爱好者!MSN:oracle_kof_tf@hotmail.com

Physical read VS Logical read

上一篇 / 下一篇  2008-01-21 19:42:11 / 个人分类:Oracle Reminder

今天被问到一个问题:
在算buffer pool命中率的时候有个最一般的公式:
1-physical reads/(db block gets+consistent gets)
这个不时很理解,难道物理读是逻辑读的一部分?


我的回答是: Oracle在读取数据块的时候,肯定是要对buffer操作,而且要在buffer中寻找这个块是否存在。但是要知道有的时候我们要查找的数据块并不在buffer中,那么我们就要从磁盘读取,这个时候就会发生物理读,即physical reads计数的增加.在物理读完成后,只是将我们的所需要的数据块map到了内存中,Oracle要操作这个块还是需要进行逻辑读的。因此呢,我们可以这样理解,是逻辑读带动了物理读,逻辑读包含了物理读。
所以我们的公式是:buffer hit=1-physical reads/(db block gets+consistent gets)。

TAG:

引用 删除 老虎   /   2008-05-09 17:32:25
db block gets是指BUFFER中 当前数据块获取的次数,而consistent gets是指BUFFER中历史数据块(也就是必须从回滚段中获取的数据块)的次数。两者之和就是总的逻辑读次数。
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar