在Oracle中,什么是物理读和逻辑读?

0    306    1

Tags:

👉 本文共约441个字,系统预计阅读时间或需2分钟。

什么是物理读和逻辑读?

当会话所需要的数据在内存的Buffer Cache中找不到,此时就要去磁盘上的数据文件中读取,这样就产生了物理读(Physical Reads),即物理读是从磁盘文件把需要的数据读入内存(SGA中的Buffer Cache)。

逻辑读(Logical Reads)表示CPU需要的数据在内存中被找到,数据被直接从内存中传入CPU执行,即逻辑读是从内存中读取。在Oracle中,逻辑读=即时读(又叫当前读,Current Read)+一致性读(Consistent Read),在“SET AUTOTRACE ON”中,逻辑读=db block gets(当前读)+consistent gets(一致性读)。即时读就是读取数据块当前的最新数据。任何时候在Buffer Cache中都只有一份当前数据块。即时读通常发生在对数据进行修改,删除操作时。这时,后台进程会给相关数据加上行级锁,并且标识数据为“脏数据”。

需要注意的是,物理读过大表现为磁盘I/O较高,逻辑读过大表现为CPU使用率过高。

有关物理读、逻辑读可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2140132/

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部