在我们优化oracle的时候,经常会用到各种各样的技术手段,其中使用statspack和explain plan是最常见的了。

当我们使用这两个常见的工具来进行优化调整的时候,经常会看到physical reads和logical reads。 那么这两者 
是什么东东, 他们分别表示什么意思,他们有什么样的区别叻。

让我们先做一下这样的实验,一起来看看 
SQL>set autotr traceonly;

SQL> select * from test1.t_1;

已选择6行。

引用:

执行计划 
---------------------------------------------------------- 
Plan hash value: 1376489960

------------------------------------------------------------------------- 
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time 
------------------------------------------------------------------------- 
| 0 | SELECT STATEMENT | | 6 | 234 | 3 (0)| 00:00:01 
| 1 | TABLE ACCESS FULL| T_1 | 6 | 234 | 3 (0)| 00:00:01 
------------------------------------------------------------------------- 
统计信息 
---------------------------------------------------------- 
199 recursive calls 
0 db block gets 
38 consistent gets 
7 physical reads  
0 redo size 
961 bytes sent via SQL*Net to client 
385 bytes received via SQL*Net from client 
2 SQL*Net roundtrips to/from client 
2 sorts (memory) 
0 sorts (disk) 
6 rows processed

这里有个很明显的 
7 physical reads

我们再来执行以下相同的语句 
SQL> select * from test1.t_1;

已选择6行。

引用:

执行计划 
---------------------------------------------------------- 
Plan hash value: 1376489960

------------------------------------------------------------------ 
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Ti 
------------------------------------------------------------------ 
| 0 | SELECT STATEMENT | | 6 | 234 | 3 (0)| 00 
| 1 | TABLE ACCESS FULL| T_1 | 6 | 234 | 3 (0)| 00 
------------------------------------------------------------------

统计信息 
---------------------------------------------------------- 
0 recursive calls 
0 db block gets 
8 consistent gets 
0 physical reads  
0 redo size 
961 bytes sent via SQL*Net to client 
385 bytes received via SQL*Net from client 
2 SQL*Net roundtrips to/from client 
0 sorts (memory) 
0 sorts (disk) 
6 rows processed

这里的physical reads已经变化了0 physical reads

冲这里的实例来看,当我们第一次读取t_1表时,表的数据块是第一次被读取到,读取以后被oracle的加载到buffer中,也就是缓存到SGA的buffer cache中,这个过程是从数据库的物理地址进行读取,读取后加载到内存中,从而这个过程就是我理解的物理读,这里为什么会有7次物理读,而不是6次,不是16次,这个可以在其他的文章中进行研究,

当第二次我们执行语句的时候,不需要去进行物理山的读了,在buffer中已经缓存了这块数据,我们当然就没有必要去读物理磁盘了,从性能上来说,这是很耗时的。 所以直接从buffer里读就可以了, 既然是从buffer里读,我们就不是一个真实的读了,所以叫做逻辑读。这里就有要引入一个其他的概念,cr(consistent gets),buffer又可能被修改了,或者是因为事务的原因,需要保证读的一致性,这样就需要cr了。cr详细在其他的文章介绍。

写到这里,带小孩去玩去了,回来接着写。

Oracle的逻辑读和物理读相关推荐

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

    在Oracle中,什么是物理读和逻辑读? 当会话所需要的数据在内存的 Buffer Cache 中找不到,此时就要去磁盘上的数据文件中读取,这样就产生了物理读( Physical Reads ),即物 ...

  2. Oracle逻辑读,物理读

    逻辑读和物理读 当执行计划创建成功后,就可以执行类似于update这样的语句.第一步是要在缓存高速缓冲区中查找数据快,数据快包含了要更新的行片段信息.通过内存中一个叫做最近最小使用列表的结构去进行查找 ...

  3. KingbaseES 逻辑读与物理读

    oracle数据库中逻辑读,物理读 数据访问方式:数据库少不了和操作系统进行数据交互,表数据最好的方式是从数据库共享池中访问到,避免发生磁盘IO,当然如果共享池中没有访问到数据就难免发生磁盘IO. 物 ...

  4. 初谈SQL Server逻辑读、物理读、预读

    前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...

  5. 理解SQL SERVER中的逻辑读,预读和物理读

    在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻辑读,预读和物理读的概念.我觉的还是写一篇博文能把这个问题解释清楚. SQL SERVER数据存储的形式 在谈到几种不同的读取方式之前, ...

  6. 初谈逻辑读、物理读、预读

    前言: 该文并不全是本人原创,里面的某些原理来自于CareySon. SQL SERVER数据存储的形式 要理解逻辑读.物理读.预读这三个概念,先要搞懂SQL Server的数据存储方式. SQL S ...

  7. 浅谈SQL Server逻辑读、物理读、预读

    目录 (一)前言 (二)正文 1. SQL Server的数据存储方式 2. 剖析IO统计信息 (1)初识三读 (2)逻辑读.物理读.预读的关系 (3)看图理解[逻辑读].[物理读].[预读] (三) ...

  8. SQL --理解SQL SERVER中的逻辑读,预读和物理读

    本文转载自:https://www.cnblogs.com/CareySon/archive/2011/12/23/2299127.html 理解SQL SERVER中的逻辑读,预读和物理读 SQL ...

  9. SQL Server 预读和物理读 的区别

    今天在网上看到有人在讨论预读和物理读的区别,个人觉得物理读和预读都是IO操作,都是需要从磁盘中读取数据到内存,只是读取的时间有所不同,之后查了一下MSDN确认了这种想法. 预读是在生成执行的同时去做的 ...

最新文章

  1. 滴滴联合比亚迪:首款定制网约车D1发布
  2. SAP WM 2-Step Picking流程里创建的Group的分析
  3. SpringCloud教程-分布式配置中心Config (SpringCloud版本Greenwich.SR4)
  4. 【学习笔记】juc并发学习+关于锁的面试题
  5. Delphi中的时间操作技术(1)
  6. jquery控制css的display(控制元素的显示与隐藏)
  7. 熟悉html css,编写HTML和CSS的前端开发中不一定熟悉JavaScript
  8. java中j 和 j啥区别_从字节码层次分析++j和j++的区别
  9. 常量中有换行符 是怎么回事?
  10. 【数论学习笔记】同余
  11. mysql集群系统_轻松构建Mysql高可用集群系统
  12. 掘金小册8折优惠:掌握这些技术,轻松拿offer
  13. C# Xamarin移动开发基础进修篇
  14. 小程序获取用户的openid(详解)
  15. 两阶段最小二乘法原理_什么是两阶段最小二乘法(2sls)?
  16. 第十九届泳联水中运动世锦赛
  17. linux mariadb 升级,Mariadb数据库更新
  18. 3个酷到没同学的冷门专业,开始逆袭了?
  19. 工商银行转账出现java_工行企业网银转账提示信息代码4506是什么意思?
  20. leetCode最短补全词

热门文章

  1. 知乎好物推荐怎么做赚钱?该如何做?
  2. 快消品图像识别丨无人店背后的商品识别技术
  3. 生成模型的2022年——人工智能AIGC顶级论文回顾
  4. Python OpenCV 图像缩放 cv2.resize 方法
  5. 为不喝的朋友准备的!如何委婉地拒绝劝酒
  6. Matterport3D:室内环境RGB-D数据的深度学习
  7. 一日精通python编程_爱上Python 一日精通Python编程 [Learn Python in One Day and Learn it Well ]...
  8. Java游戏培训机构哪家专业
  9. 梦幻西游代理途径有哪些?需要注意什么
  10. 图深度学习——复杂图嵌入:异质图,二分图,多维图,超图,符号图,动态图