oracle_qht 发表于 2014-5-22 20:02:56

怎么理解Oracle的物理读,逻辑读,即时读,一致读和读一...

大家好

      究竟怎么理解如下的几个概念,谈谈你对这几个概念的理解。

1. 物理读
2. 逻辑读
3. 即时读
4. 一致读
5 读一致性

这几个概念困扰了我很久。

yej2007 发表于 2014-5-25 21:55:16

1. 物理读
    这个很容易理解,cpu需要的数据在内存中找不到,那么此时必须去物理磁盘上获取,必然产生物理i/o。
    反应在oracle中,就是会话需要某条数据时,在内存的buffer cache中中没有,此时就要去磁盘上的dbf文件中读取。就产生物理读。
    另外,一次物理读会不会产生一次逻辑读?我个人认为是会的。
2. 逻辑读
    这个概念是最清晰,但同时又是最模糊的。
    按照计算机原理来讲,逻辑读,表示cpu需要的数据在内存中被找到,数据被直接从内存中传入cpu执行。
    大家都知道:逻辑读=即时读+一致读。
    那么什么是即时读?什么又是一致读?
3. 即时读(又叫当前读)
    当前读(Current read):得到块来实际更新所要修改的行时,所完成的获取就是当前读。
    这么话怎么理解?
4. 一致读
    一致读(Consistent read):“发现”要修改的行时,所完成的获取就是一致读。
5. 读一致性
    这个概念,无庸置疑。
    读一致性:Oracle在需要时会使用undo数据来构造CR块,从而提供非阻塞的查询。
    这里的读一致性和一致读是不是一个意思?我个人感觉这两个概念不是一个意思。

tfy 发表于 2015-6-17 16:11:53

学习了,加深了印象
页: [1]
查看完整版本: 怎么理解Oracle的物理读,逻辑读,即时读,一致读和读一...