在我们优化oracle的时候,经常会用到各种各样的技术手段,其中使用statspack和explain plan是最常见的了。 当我们使用这两个常见的工具来进行优化调整的时候,经常会看到physical reads和logical reads。 那么这两者 是什么东东, 他们分别表示什么意思,他们有什么样的区别叻。 让我们先做一下这样的实验,一起来看看 SQL>set au
原创
2009-09-12 08:52:00
137阅读
(一)、物理读:把数据从数据块读取到buffer cache中1、第一次查询一个表tselect * from t ;2、第二次查询:select * from t;第一次查询有6次物理读,第二次查询有0个物理读。当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了。3、数据块被重新读入buffer cache ,这种发生在...
转载
2021-08-09 22:42:47
280阅读
逻辑读是指从内存中读,物理读是指从磁盘上读取数据;如果内存中存在相应的读取数据,那么直接从内存中读取,逻辑读的次数加1,如果不存在,则从磁盘上读到内存中,再从内存中读取,逻辑度次数加1,物理读次数也加1。需要注意的是,物理读非常消耗系统资源,一个物理读需要消耗8ms,而一秒可以处理20万个逻辑读。
1.物理读(physical read)
当数据块第一次读取到,就会缓存到buffer
转载
精选
2012-08-08 15:03:12
818阅读
点赞
ORACLE的物理读与逻辑读PhysicalReads(物理读):物理读的内容不在内存中,要去硬盘中读入内存。计算公式可以如下:PhysicalReads=dbblockgets+consistentgets;LogicalReads(逻辑读):逻辑读内容在内存中,不需要读硬盘。dbblockgets--从buffercache中读取的block的数量。consistentgets--从buffe
转载
精选
2013-10-08 14:45:17
1662阅读
(一)、物理读:把数据从数据块读取到buffer cache中1、第一次查询一个表tselect * from t ;2、第二次查询:select * ache ,这种发生在...
转载
2022-04-11 17:43:30
574阅读
在Oracle中,什么是物理读和逻辑读? 当会话所需要的数据在内存的 Buffer Cache 中找不到,此时就要去磁盘上的数据文件中读取,这样就产生了物理读( Physical Reads ),即物理读是从磁盘文件把需要的数据读入内存( SGA 中的 Buffer Cache )。 逻辑读( Logical Reads )表示 CPU 需要的数据在内存中
原创
2021-04-16 21:21:54
1759阅读
Oracle 物理读 逻辑读 一致性读 当前模式读总结浅析 在ORACLE数据库中有物理读(Physical Reads)、逻辑读(Logical Reads)、一致性读(Consistant Get)、当前模式读(DB Block Gets)等诸多概念,如果不理解或混淆这些概念的话,对你深入理解一些知识无疑是一个障碍,但是这些概念确实挺让让人犯晕的。下面我们总结、学习一下这方面的知识点。捋一捋
原创
2021-04-10 00:41:26
441阅读
在ORACLE数据库中有物理读(Physical Reads)、逻辑读(Logical Reads)、一致性读(Consistant Get)、当前模式读(DB Block Gets)等诸多概念,如果不理解或混淆这些概念的话,对你深入理解一些知识无疑是一个障碍,但是这些概念确实挺让让人犯晕的。下面我们总结、学习一下这方面的知识点。捋一捋他们的关系和特点,希望对你有所帮助。 物理读(...
原创
2021-08-23 09:35:07
541阅读
在Oracle中,什么是物理读和逻辑读? 当会话所需要的数据在内存的 Buffer Cache 中找不到,此时就要去磁盘上的数据文件中读取,这样就产生了物理读( Physical Reads ),即物理读是从磁盘文件把需要的数据读入内存( SGA 中的 Buffer Cache )。 逻辑读( Logical Reads )表示 CPU 需要的数据
原创
2021-04-13 15:44:44
196阅读
Q:如果我从T时开始执行一个查询,在T+3时数据才能查询完成,在此期间被查询的数据发生了变化。那么请问,我返回的数据是那个时点的数据?oracle用时如何保证该查询的?A:首先,查询的记录时有查询发起的时间点来决定的。需要返回T时数据的情况,而非数据返回时数据的情况。oracle是通过一个全局变量(SCN)来判断的.SCN System Change Number,是一个只能增加的数字。当有数据变
原创
2021-04-21 20:58:22
163阅读
1.查看逻辑读前十的SQL SET LINESIZE 300;SET PAGESIZE 300;SET LONG 50000;SELECT * FROM ( SELECT sql_fulltext AS sql, SQL_ID, buffer_gets / executions AS "Gets/Exec", buffer_gets, executions FROM V$SQLA
原创
2022-08-02 10:36:57
174阅读
忽然想到了测试数据库的真实IO能力,虽然硬件工程师有套方法测试IOPS ,虽然ORACLE也推出了ORAXXX的测试小工具. 实际应用环境中块8K 得到
一,基本概述调优内存的使用主要有三个方面的考虑:对象的内存占用量(你可能希望整个数据集都适合内存),访问这些数据的开销,垃圾回收的负载。默认情况下,java的对象是可以快速访问的,但是相比于内部的原始数据消耗估计2-5倍的空间。主要归于下面三个原因:1),每个不同的Java对象都有一个“对象头”,它大约是16个字节,包含一个指向它的类的指针。对于一个数据很少的对象(比如一个Int字段
转载
2024-08-07 13:18:13
77阅读
Q 题目如下所示: 在Oracle中,什么是物理读和逻辑读? A 答案如下所示: 当会话所需要的数据在内存的Buffer Cache中找不到,此时就要去磁盘上的数据文件中读取,这样就产生了物理读(Physi...
原创
2021-08-06 16:06:20
141阅读
由于博客中有大量代码,通过页面浏览效果更佳。1 环境介绍与现象描述数据库多块读很慢,单块读、写都很正常,多块读的平均响应时间是单块都的10倍。
本系统数据文件存放在VXFS上面,数据库是从9i通过DG方式升级到11G,9i使用的是raw.2 分析与测试过程2.1 AWR中收集单块读与多块读的平均响应时间下面是从AWR中统计每个快照的单块读与多块读的响应时间" data-meta="set ver
本文分析了Oracle数据库多块读响应时间异常的问题。数据库是从9i通过DG方式升级到11G,数据文件存储在VXFS文件系统上。AWR统计
35这里也有讲解1:undo segment的概念 当数据库进行修改的时候,需要把保存到以前的old的数据保存到一个地方,然后进行修改,用于保存old数据的segment 就是undo segment。 以前老的东西是可以被覆盖掉的,因为undo segment是一种循环利用的方式。 看下图 如上图所示:当oracle开启一个事务对table表中的数据进行修改,修改的那个数据(行数据)会被拷贝到 右图 undo segment(用圆形表示是因为表示会被覆盖)中,这个时候事务没有提交,在这个时候查询table中的数据,进行全部查询的时候, 当进行全表扫描 扫描到 被事务修改的数...
转载
2013-06-28 19:01:00
286阅读
2评论
上篇文章主要介绍了关于cursor的一些实现和工作原理,以及关于父子cursor的存储方式等理论部分,接下来我们来进行一番实验来印证我们的理论。如下为实验部分,在scott用户下进行查询emp表的数据:SQL> select empno,ename from emp; EMPNO ENAME---------- -------------------- 7369 SMITH
原创
2021-04-15 14:54:28
199阅读
上篇文章主要介绍了关于session cursor如何缓存以及工作相关原理,还有session cursor存在的意义等理论知识,并且最后给出关于session cursor能够被缓存在PGA中是有额外的限制条件的结论 如下...
原创
2021-04-15 21:39:09
224阅读
什么是一致性读? 一致性读指的是在从查询那一刻起,中间的变化不予理会。 举例说明 比如我有两个帐户A,B. A 有1000块,B有1000快。我查询的时候查询速度比较慢。中间A转500到B账户。 已经查询到A账户有1000,B账户有1500,这个时候我查询的结果是查询的结果应该是2500还是2000呢? 正确结果当然是2000。 这里就设计到oracle一致性查询的问题了. o...
原创
2021-07-22 16:55:51
323阅读