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

急!!!!!!一个简单查询索引的问题.
a表里有个Enddate字段,字段类型为date类型,并且Enddate为索引。

SQL1;     select   *   from   a   where   Enddate   <   '2007-5-14 '
SQL2:       select   *   from   a   where   Enddate   =   '2007-5-14 '

经过PL/SQL中的解释计划分析,SQL1没有走索引,而SQL2走了索引,请问为什么?请麻烦解释一下,谢谢。

------解决方案--------------------
SQL返回多少条数据?table中一共有多少条数据?

如果需要返回较多的数据,那么优化器会选择表扫描,因为这样会更高效。索引的使用涉及到很多方面的考虑的
------解决方案--------------------
1 analyse下表再看行不行
2 强制使用索引,select /*+ index(索引名) */ * from a where Enddate < '2007-5-14 '