rpsc.net
当前位置:首页 >> orAClE中逻辑读的单位是什么? >>

orAClE中逻辑读的单位是什么?

有两种读:逻辑读和物理读 数据库读写的单位是数据块。当用户最终得到的结果可能只是某个数据块中的几行或几列。当一个查询语句被执行时,服务器进程会将相关的数据块从数据文件中写入内存(buffer cache)。这就叫做物理读。每读取一个数据块,即...

1. 物理读 这个很容易理解,cpu需要的数据在内存中找不到,那么此时必须去物理磁盘上获取,必然产生物理i/o。 反应在oracle中,就是会话需要某条数据时,在内存的buffer cache中中没有,此时就要去磁盘上的dbf文件中读龋就产生物理读。 2. 逻辑...

物理读即是把数据从磁盘读入到buffer catch的过程。 通常情况下是,如果需要数据的时候发现不存在于buffer catch当中,即oracle就会执行物理读。 例子如下: C:/Documents and Settings/Administrator>sqlplus jenny/jenny SQL> set autotrace t...

select * from v$sysstat where name='session logical reads';

开启执行计划后,数据库后台肯定会执行若干操作,但以现在的CPU性能来说,那些操作几乎没有影响

逻辑读就是从内存中(db buffer cache)读。 SQL执行过程中,如果发生物理读,将dbf的数据加载到内存,这一步显然是非常耗时的。 所以上面的说法是错误的。 我们总是希望逻辑读越多越好,毕竟从内存读的速度要远远大大于从硬盘读

单块读就是一次IO读取一个block,多是通过rowid进行数据读取,例如索引;多块读就是一次读取多个block,多在full table scan中。

select t.SID,n.NAME,t.VALUE from v$sesstat t, v$statname n where t.STATISTIC# = n.STATISTIC# and n.STATISTIC# in (9, 54) and t.SID=&sid

需要建立一张表来记录 explain plan SET statement_id='name' FOR (这里是你要调试的语句 ) SELECT A.OPERATION, OPTIONS, OBJECT_NAME, OBJECT_TYPE, ID, PARENT_ID FROM PLAN_TABLE A WHERE STATEMENT_ID='name' ORDER BY Id; ID 'name'是一个...

1、数据库缓冲区DB_BUFFER只能缓存访问过的BLOCK,部分解决了物理读的问题,查询仍然需要大量的逻辑读。 2、SQL缓存结果集/*+RESULT_CACHE*/它缓存的是查询的结果。不在需要大量的逻辑读,不在需要任何的复杂计算,而是直接将已经缓存的结果返回...

网站首页 | 网站地图
All rights reserved Powered by www.rpsc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com