您的位置:首页 > 其它

Physical read + Logical read(DB block gets ,consistent gets )

2012-12-17 19:46 211 查看
Physical read 就是把数据块从 Disk 读到内存

Logical read 就是把数据块从db_cache 读到 server_process的PGA

Logical read = DB block gets + consistent gets

DB block gets 就是 当前的data 读的时候SCN 根据当前最新的current SCN 获得的,一般update前要先获得最新数据

consistent gets 就是 consistent 的data,就是说读的时候SCN 不是根据current SCN获得的,而是根据查询时对应的scn获得的,select

Oracle 每访问一个数据块,就需要一个logical read , 不管是否是当前SCN .也不管是否需要作physical read( 把数据块从 Disk 读到内存 ) , 也就是说,就算已经作了physical read , Oracle 还是需要再作logical read 才能访问到这个数据块(先从Disk 读到SGA, 再从SGA读到PGA)

当然,有一个特例,就是physical read direct , 把数据直接从disk 上读到 PGA里面,中间不通过SGA , 这时候,就是只有 physical read 而没有logical read……

至于 Buffer Hit 的公式

Hit Ratio = (db block gets + consistent gets - physical reads) / (db block gets + consistent gets)

== (logical read - physical read) / (logical read)

== (只走内存的logical read)/(所有logical read) 就是所谓的内存命中率了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: