大家好

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

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

这几个概念困扰了我很久。
标签: 暂无标签
oracle_qht

写了 1 篇文章,拥有财富 56,被 1 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 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
P4 | 发表于 2015-6-17 16:11:53
学习了,加深了印象
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈