日期:2014-05-16  浏览次数:21586 次

大家来谈谈哪些情况可以导致索引失效
今天写了一条sql,执行的时候发现用时非常长,以至于查不出结果。
后来发现是一个有索引的字段使用了like 和 upper()导致了索引失效。
然后我就试了以下几种都会使索引失效
!=、is null、like、+/-、upper/lower(upper(A.NAME) = 'name'这种情况)
在ORACLE中到底有哪些情况会导致索引失效呢?
------解决方案--------------------
围观中
------解决方案--------------------
引用:
我梦见我前女友死了,我哭的稀里哗啦的! 

我举报路上

话说 索引不是 主键 唯一件 这些么
------解决方案--------------------
1.函数
2.表达式
3.部分隐式转换
4.like和substr
5.查询所有null值
6.否定形式
------解决方案--------------------
这个不叫索引失效,确切的说,是你的查询没有走索引,对不?
------解决方案--------------------
引用:
Quote: 引用:

我梦见我前女友死了,我哭的稀里哗啦的! 

我举报路上

话说 索引不是 主键 唯一件 这些么
你怎么可以这样
------解决方案--------------------
引用:
方便面的世界果然难以理解。。难道是你却火腿肠吗?
结贴给分,废话那么多
------解决方案--------------------
引用:
Quote: 引用:

这个不叫索引失效,确切的说,是你的查询没有走索引,对不?

好像是 我不太懂

看执行计划,上sql,上表结构
------解决方案--------------------
这么多表,数据量一大肯定要慢

你先看看每个表的执行情况,然后看看到底是加到哪个条件或者哪个表才慢