Oracle SQL语句为什么不走索引-场景三

来源:这里教程网 时间:2026-03-03 20:52:35 作者:

案例:    场景数据:        SQL> create table  tab_test1 as select * from dba_objects;                 Table created.         SQL> select count(*) from tab_test1;                   COUNT(*)                     ----------                      86653    如下是创建主键、索引并且收集统计信息 收集系统参数: 通过上述系统信息可以计算如下信息:SREADTIM=IOSEEKTIM+DB_BLOCK_SIZE/IOTFRSPEED=15+(8192/4096)=17 MREADTIM=IOSEEKTIM+DB_BLOCK_SIZE*MBRC/IOTFRSPEED=15+(8192*8/4096)=31 生产执行计划trace: 执行计划trace+系统统计信息: 如上描述我们可以回去到如下信息:一SQL语句:select/* 10053 tracing */ count(1) from tab_test1 t where object_id in ('24196','24186');二表对象89067 ID为89067三统计信息类型采用NOWORKLOAD方式(上节有详细描述) 表的基础统计信息如下: 数据库提供的表访问路径,其中最后一次使用indexonly效率最高: 优化器统计及计算 根据上述信息我们可以看到SQL语句为什么选用了该执行路径!

相关推荐