日期:2014-05-17  浏览次数:20869 次

Sql
S

------解决方案--------------------

一般情况下,where条件中和null比较将会导致full table scan,实际上,如果table中索引建列的值都为null,那么该行在索引(此处指b*tree,位图索引和聚簇索引可以有空值)中就不会存在,因此oracle为了保证查询结构的准确性,就会用full table scan代替index scan,这样理解,不走索引也就在情理之中。
当然,如果某个索引列上有定义为not null,在这种情况下,不存在所有索引列都为空的情况,所以此种情况下,是可以走index scan的,因此,对于where条件中含有类似is null,=null的情况,是否走索引,还是要看索引建中是否有某个列定义为not null。
------解决方案--------------------
同感兴趣,mark
------解决方案--------------------
具体看执行计划吧
------解决方案--------------------
MARK一下,等待牛人解答
------解决方案--------------------
where name is null 
一般查询条件中出现了这样的条件,都会进行全表扫描~~