oracle 查询不走索引的范例分析

发布时间:2020-08-03 23:03:53 作者:rm_rf_db
来源:网络 阅读:2532

like 后%位置不走索引问题

create table t2 as select * from dba_objects;——创建表
create index idx_t2_name on t2(object_name);——创建索引
set autotrace on ——开启执行计划跟踪
select * from t2 where object_name like 'DE%';——走索引
select * from t2 where object_name like '%DE';——不走索引

查询字段类型与表字段类型不一致导致隐式转换,不走索引问题

create table t3(id varchar2(10),name varchar2(10));——创建表t3
insert into t3 select * from dba_objects;——插入数据
commit; ——提交
create index idx_t3_id on t3(id);创建id索引
set autotrace on——开启执行计划自动跟踪
select * from t3 where id=7000;——不走索引,会出现隐式转换,filter(TO_NUMBER("ID")=7000)
select * from t3 where id='7000';——走索引,cost大大提升

另:不要用select '*' from........写select 星号时,oracle会查询数据字典再转换成具体的列名,增加oracle的开销,建议写具体字段名称。
附:查询表的索引信息
select INDEX_NAME,INDEX_TYPE,TABLE_OWNER,TABLE_NAME,TABLESPACE_NAME from user_indexes where table_name='T1';

推荐阅读:
  1. Oracle常见的Hint(二)
  2. Oracle索引扫描

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle 查询优化 不走

上一篇:好程序员大数据教程Scala系列之类

下一篇:新技术不断涌现,下一代云计算的突破口在哪里?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》