oracle的逻辑读、物理读总结
1、第一次查询一个表t
Oracle性能调优中,逻辑读是个很重要的度量值,它不仅容易收集,而且能够告诉我们许多关于数据库引擎工作量的信息。逻辑读是在执行SQL语句的时候从高速缓存中读取的块数。
逻辑读在Oracle调优中有四个好处:
(1)逻辑读是受制于CPU能力的操作,因而,很好的反映了CPU的使用情况。
(2)逻辑读可能导致物理读,因而,通过减少逻辑读的数量,很可能会降低I/O操作次数。
(3)逻辑读是受制于串行的操作,既然经常要考虑多用户负载的优化,最小化逻辑读将有利于避免扩展性问题。
(4)逻辑读的数量可以通过SQL跟踪文件和动态性能视图在SQL语句以及执行计划级别获得。
我们都知道,数据块是oracle最基本的读写单位,但用户所需要的数据,并不是整个块,而是块中的行,或列.当用户发出SQL语句时,此语句被解析执行完毕,就开始了数据的抓取阶段,在此阶段,服务器进程会先将行所在的数据块从数据文件中读入buffer cache,这个过程叫做物理读.物理读,每读取一个块,就算一次物理读.当块被送进buffer cache后,并不能立即将块传给用户,因为用户所需要的并不是整个块,而是块中的行.从buffer cache的块中读取行的过程,就是逻辑读.为了完成一次逻辑读,服务器进程先要在hash表中查找块所在的buffer cache 链.找到之后,需要在这个链上加一个cache buffer chains 闩,加闩成功之后,就在这个链中寻找指定的块,并在块上加一个pin锁.并释放cache buffer chains闩.然后就可以访问块中的行了.服务器进程不会将块中所有满足条件的行一次取出,而是根据你的抓取命令,每次取一定数量的行.这些行取出之后,会经由PGA传给客户端用户.行一旦从buffer cache中取出,会话要释放掉在块上所加的PIN.本次逻辑读就算结束.如果还要再抓取块中剩余的行,服务器进程要再次申请获得cache bufffer链闩.再次在块上加PIN.这就算是另外一次逻辑读咯.也就是说,服务器进程每申请一次cache buffer链闩,就是一次逻辑读.而每次逻辑读所读取的行的数量,可以在抓取命令中进行设置.
逻辑读和Cache buffer chains闩关系密切,TOM曾有文章提到,进程每申请一次Cache buffer chains闩,就是一次逻辑读。但是,逻辑读并不等同于Cache buffer chains闩,每次逻辑读,在9i中至少需要获得两Cache buffer chains闩。逻辑读是指在Hash表中定位块的这个过程。
oracle的逻辑读、物理读总结相关推荐
- (未看)ORACLE物理读和逻辑读(SET AUTOTRACE ON 部分参数解释)[逻辑IO只有逻辑读,没有逻辑写]
逻辑IO只有逻辑读,没有逻辑写 ORACLE物理读和逻辑读(SET AUTOTRACE ON 部分参数解释) set autotrace 产生部分信息解读的官方文档基本的定义为如下: recursiv ...
- oracle 优化逻辑读过高,详述逻辑读与arraysize的关系
我们都知道,数据块是oracle最基本的读写单位,但用户所需要的数据,并不是整个块,而是块中的行,或列.当用户发出SQL语句时,此语句被解析执行完毕,就开始了数据的抓取阶段,在此阶段,服务器进程会先将 ...
- oracle 优化逻辑读过高(实战详解:逻辑读与arraysize关系)
数据块是oracle最基本的读写单位,但用户所需要的数据,并不是整个块,而是块中的行,或列. 当用户发出SQL语句时,此语句被解析执行完毕,就开始了数据的抓取阶段,在此阶段,服务器进程会先将行所在的数 ...
- [MS Sql Server术语解释]预读,逻辑读,物理读
在MSSQL中使用 SET STATISTICS IO ON 打开IO统计功能之后,每次执行完一个查询就会在下面的[消息]面板中显示本次查询IO的统计信息. (0 行受影响) 表 'demo'.扫描计 ...
- 浅谈SQL Server逻辑读、物理读、预读
目录 (一)前言 (二)正文 1. SQL Server的数据存储方式 2. 剖析IO统计信息 (1)初识三读 (2)逻辑读.物理读.预读的关系 (3)看图理解[逻辑读].[物理读].[预读] (三) ...
- oracle 物理读,逻辑读的理解
1.物理读(physical read) 当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了 以下是例子: 1.1 第一次 ...
- Oracle的逻辑读和物理读
在我们优化oracle的时候,经常会用到各种各样的技术手段,其中使用statspack和explain plan是最常见的了. 当我们使用这两个常见的工具来进行优化调整的时候,经常会看到physica ...
- 在Oracle中,什么是物理读和逻辑读?
在Oracle中,什么是物理读和逻辑读? 当会话所需要的数据在内存的 Buffer Cache 中找不到,此时就要去磁盘上的数据文件中读取,这样就产生了物理读( Physical Reads ),即物 ...
- Oracle 物理读 逻辑读 一致性读 当前模式读总结浅析
Oracle 物理读 逻辑读 一致性读 当前模式读总结浅析 在ORACLE数据库中有物理读(Physical Reads).逻辑读(Logical Reads).一致性读(Consistant Get ...
最新文章
- slub object 内存布局
- mysql之基础操作grant、show、repair、log_error等
- Google V8 编译方法(visual c++ 2008 express)(学习+原创)
- PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.5. 安装后设置...
- CPU位数、操作系统位数、应用程序位数浅析
- 2047.句子中的有效单词数
- gtest的Linux使用(Google test)
- ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题
- .net 考试系统人一多就断开了_【项目】Java在线考试系统
- 金山android高级面试,金山视频云/KSYMediaPlayer_Android
- 在统计模式识分类问题中,当先验概率未知时,可以使用
- CHK文件恢复工具v2.0绿色版
- tp对接支付宝转账提现
- 计算关联系数matlab,matlab相关系数计算公式
- 好看又实用的压缩文件管理器——Bandizip
- iphone开源汇总
- spm12预处理步骤及知识点总结
- Android 报错Failed to load native library: XXXX_so
- Android 静音检测
- 超越“双十一”—— ebay百万TPS支付账务系统的设计与实现