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