Physical Reads(物理读):逻辑读内容在内存中,不需要读硬盘。计算公式可以如下:Physical Reads = db block gets + consistent gets;
Logical Reads(逻辑读):物理读是内容不在内存中,要去硬盘中读入内存。
db block gets --从buffer cache中读取的block的数量。
consistent gets --从buffer cache中读取的undo数据的block的数量。
db block gets 是在current mode下读取的block数目。current mode下读取数据是为了保证读取到的数据是当前时间点上最新的数据,这样做的目的一般都是为了DML语句的需求,比如需要更新,自然需要知道最新的数据才行;consistent gets 是在consistent mode下读取的block数目。consistent mode呢主要是为了保证Oracle数据一致读的特性,一般都是在select情况下发生,读到的数据可能是一个实际存在的block,也有可能需要根据scn信息以及transaction相关信息以及回滚段中数据来构造。
总结:由于在Oracle中,取数据最后都是从Buffer中取,所以每出现一个
physicalreads必然会出现一次
logicalreads,但是这里有一个需要注意的地方,就是当出现一个
physicalreads后接着会有一个
logicalreads这里,实际上这里只算了1 block!
所以说,如果以这样的公式(Physical Reads = db block gets + consistent gets;)来计算Physical Reads,那么逻辑读就已经包含了物理读了。不管是db block gets还是consistent gets,都可能出现了
physicalreads和
logicalreads两种情况,也即是说,db block gets与consistent gets两者已经构成了一次数据库操作中读取的所有block的总次数了。因此,
logicalreads自然也就可以通过如下公式算的:
logicalreads= (db block gets + consistent gets) -
physicalreads。由此,自然也就得出了cache命中率的公式:
Hit Ratio = (db block gets + consistent gets -
physicalreads) / (db block gets + consistent gets) * 100%;如何估算Oracle数据库所需的UNDO表空间的大小Oracle 生成序列号存储过程相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)