查看: 592|回复: 15

[讨论] 为什么逻辑读是4.txt

[复制链接]
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
发表于 2018-3-20 08:54 | 显示全部楼层 |阅读模式
[20180320]为什么逻辑读是4.txt

SCOTT@book> @ &r/ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production


create table t as select * from all_objects order by  DBMS_RANDOM.random;
create index i_t_object_id on t(object_id);

--//分析.
execute sys.dbms_stats.gather_table_stats ( OwnName => nvl('',user),TabName => 't',Estimate_Percent => NULL,Method_Opt => 'FOR ALL COLUMNS SIZE 1 ',Cascade => True ,No_Invalidate => false)

SCOTT@book> select data_object_id,object_id from dba_objects where owner=user and object_name='T';
DATA_OBJECT_ID  OBJECT_ID
-------------- ----------
         90485      90485

SCOTT@book> select rowid ,owner,object_id from t where object_id  between  1 and 5;
ROWID              OWNER   OBJECT_ID
------------------ ------ ----------
AAAWF1AAEAAAAIxAAI SYS             2
AAAWF1AAEAAAALOAAd SYS             3
AAAWF1AAEAAAAMnAAA SYS             4
AAAWF1AAEAAAASOAAu SYS             5

SCOTT@book> alter session set statistics_level=all;
Session altered.

SCOTT@book> select rowid ,owner,object_id from t where rowid between 'AAAWF1AAEAAAASOAAu' and 'AAAWF1AAEAAAASOAAv';
ROWID              OWNER   OBJECT_ID
------------------ ------ ----------
AAAWF1AAEAAAASOAAu SYS             5
AAAWF1AAEAAAASOAAv PUBLIC      47741

SCOTT@book> @ &r/dpc '' ''
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  7s61zx3793qby, child number 1
-------------------------------------
select rowid ,owner,object_id from t where rowid between
'AAAWF1AAEAAAASOAAu' and 'AAAWF1AAEAAAASOAAv'
Plan hash value: 280204748
---------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                   | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers | Reads  |
---------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |      |      1 |        |       |   338 (100)|          |      2 |00:00:00.01 |       4 |      1 |
|*  1 |  TABLE ACCESS BY ROWID RANGE| T    |      1 |      2 |    46 |   338   (1)| 00:00:05 |      2 |00:00:00.01 |       4 |      1 |
---------------------------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$1 / T@SEL$1
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - access(ROWID>='AAAWF1AAEAAAASOAAu' AND ROWID<='AAAWF1AAEAAAASOAAv')

--//为什么这里逻辑读会是4.那位能解析一下.
--//这种特性情况下查询会走直接路径读.而且肯定和直接路径读有关.

SCOTT@book> select rowid ,owner,object_id from t where rowid between 'AAAWF1AAEAAAASOAAu' and 'AAAWF1AAEAAAASOAAu';
ROWID              OWNER   OBJECT_ID
------------------ ------ ----------
AAAWF1AAEAAAASOAAu SYS             5

SCOTT@book> @ &r/dpc '' ''
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  6xkxcznxh1h6f, child number 0
-------------------------------------
select rowid ,owner,object_id from t where rowid between
'AAAWF1AAEAAAASOAAu' and 'AAAWF1AAEAAAASOAAu'
Plan hash value: 3207308387
--------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                  | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers | Reads  |
--------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |      |      1 |        |       |     1 (100)|          |      1 |00:00:00.01 |       1 |      1 |
|   1 |  TABLE ACCESS BY USER ROWID| T    |      1 |      1 |    23 |     1   (0)| 00:00:01 |      1 |00:00:00.01 |       1 |      1 |
--------------------------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$1 / T@SEL$1


论坛徽章:
121
现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2018-3-20 09:56 | 显示全部楼层
lfree,逻辑读有对应的event可以trace
来自苹果客户端来自客户端

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
 楼主| 发表于 2018-3-20 09:58 | 显示全部楼层
我跟踪不出来....

使用道具 举报

回复
论坛徽章:
121
现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2018-3-20 10:01 | 显示全部楼层
应该是10200和10201
来自苹果客户端来自客户端

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
 楼主| 发表于 2018-3-20 10:07 | 显示全部楼层
我做过10200跟踪,看到的是2个.

你自己可以测试看看.

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
 楼主| 发表于 2018-3-20 10:09 | 显示全部楼层
我在10g写测试也是4,下午在看看.

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
 楼主| 发表于 2018-3-20 10:11 | 显示全部楼层

SCOTT@test> ALTER SESSION SET EVENTS '10200 TRACE NAME CONTEXT FOREVER, LEVEL 1';

Session altered.

SCOTT@test> select * from emp where rowid between 'AAAMlsAAEAAAAAgAAA' and 'AAAMlsAAEAAAAAgAAD';
     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    20
      7499 ALLEN      SALESMAN        7698 1981-02-20 00:00:00       1600        300         30
      7521 WARD       SALESMAN        7698 1981-02-22 00:00:00       1250        500         30
      7566 JONES      MANAGER         7839 1981-04-02 00:00:00       2975                    20

SCOTT@test> ALTER SESSION SET EVENTS '10200 TRACE NAME CONTEXT off';

Session altered.

*** 2018-03-20 10:10:01.186
*** ACTION NAME) 2018-03-20 10:10:01.176
*** MODULE NAMESQL*Plus) 2018-03-20 10:10:01.176
*** SERVICE NAMESYS$USERS) 2018-03-20 10:10:01.176
*** SESSION ID148.11179) 2018-03-20 10:10:01.176
Consistent read started for block 4 : 01000020
  env: (scn: 0x0003.7c78a14c  xid: 0x0000.000.00000000  uba: 0x00000000.0000.00  statement num=0  parent xid: xid: 0x0000.000.00000000  scn: 0x0000.00000000 8sch: scn: 0x0000.00000000)
CR exa ret 9 on:  0x600139d0  scn: 0xffff.ffffffff  xid: 0x0000.000.00000000  uba: 0x00000000.0000.00  scn: 0xffff.ffffffff  sfl: 0
Consistent read finished for block 4 : 1000020
Consistent read finished for block 4 : 1000020
Consistent read started for block 4 : 01000020
  env: (scn: 0x0003.7c78a14c  xid: 0x0000.000.00000000  uba: 0x00000000.0000.00  statement num=0  parent xid: xid: 0x0000.000.00000000  scn: 0x0000.00000000 8sch: scn: 0x0000.00000000)
CR exa ret 9 on:  0x600139d0  scn: 0xffff.ffffffff  xid: 0x0000.000.00000000  uba: 0x00000000.0000.00  scn: 0xffff.ffffffff  sfl: 0
Consistent read finished for block 4 : 1000020
Consistent read finished for block 4 : 1000020

Plan hash value: 2267975152

------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                   | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers |
------------------------------------------------------------------------------------------------------------------------------
|*  1 |  TABLE ACCESS BY ROWID RANGE| EMP  |      1 |      1 |    37 |     3   (0)| 00:00:01 |      4 |00:00:00.01 |       4 |
------------------------------------------------------------------------------------------------------------------------------

--也是4个.

使用道具 举报

回复
论坛徽章:
121
现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2018-3-20 10:46 | 显示全部楼层
这个我好像有印象,所谓的逻辑读其实是buffer pin。rowid 访问的时候buffer pin好像有特殊的地方。等我到公司后看看
来自苹果客户端来自客户端

使用道具 举报

回复
认证徽章
论坛徽章:
25
咸鸭蛋
日期:2012-04-19 22:15:41技术图书徽章
日期:2016-11-05 10:34:54弗兰奇
日期:2016-12-04 22:53:10托尼托尼·乔巴
日期:2016-12-29 12:51:28蒙奇·D·路飞
日期:2017-03-17 17:18:21罗罗诺亚·索隆
日期:2017-03-17 17:24:44山治
日期:2017-04-21 13:55:28娜美
日期:2017-05-19 14:49:04技术图书徽章
日期:2017-07-10 17:12:09托尼托尼·乔巴
日期:2018-02-01 10:07:45
发表于 2018-3-20 14:12 | 显示全部楼层
本帖最后由 desert_xu 于 2018-3-20 14:41 编辑

非唯一索引 4,唯一索引 3 ,忘记是哪个大佬 blog 写的,还有实验

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
 楼主| 发表于 2018-3-20 15:03 | 显示全部楼层
desert_xu 发表于 2018-3-20 14:12
非唯一索引 4,唯一索引 3 ,忘记是哪个大佬 blog 写的,还有实验

rowid那里走索引.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表