今天被问到一个问题:
在算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)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12361284/viewspace-154935/
,如需转载,请注明出处,否则将追究法律责任。