Oracle索引失效

2017-08-04  本文已影响0人  是阿离

问题

t_freeproduct_infoprod_id varchar2(100)字段加上索引后,使用

SELECT * FROM t_freeproduct_info t
where t.prod_id = 13;

查询时发现速度并没有提升

原因

Oracle中存在建立了索引,查询也未用到的现象,即索引失效,能够引起索引失效的现象主要有:

  1. 未使用WHERE条件 0.0
  2. 使用NULLIS NULL作为条件
  3. 使用<>!=NOT INNOT EXIST等这类不等于操作
  4. 查询条件使用函数,如to_char()
  5. 不匹配的数据类型,如问题中,索引字段为varchar2类型,查询条件中却使用int类型
  6. 使用LIKE '%T' 语句中%在前面的

原语句修改为

SELECT * FROM t_freeproduct_info t
where t.prod_id = '13';

参考文章

能使 Oracle 索引失效的六大限制条件
oracle 索引失效的原因

上一篇下一篇

猜你喜欢

热点阅读