【求神贴】使用索引反而慢:索引是一柄双刃剑,伤敌伤己

我不说话 发布于 2013/04/02 11:32
阅读 158
收藏 0

表 table1 有一个date类型字段sub_time,并建立了索引。


查询语句使用
sub_time <= to_date('2013-04-02 23:59:59', 'yyyy-mm-dd hh24:mi:ss') and sub_time >= to_date('2013-04-02 00:00:00', 'yyyy-mm-dd hh24:mi:ss')


竟然超时,使用'2013-04-02 23:59:59' >= to_char(sub_time, 'yyyy-mm-dd hh24:mi:ss') and '2013-04-02 00:00:00' <= to_char(sub_time, 'yyyy-mm-dd hh24:mi:ss') 


能查出来。


造成这种问题的原因,有可能有哪些。本人发出急急如律令,召唤,列位在世Oracle大牛速来救人!!!!!


普及一下索引知识。


加载中
0
剑尖血凝紫
剑尖血凝紫
你创建的是什么索引啊,发下执行计划,等大牛来给你解释
0
魔力猫
魔力猫

建立索引后有收集统计信息吗?

而且你这个SQL的执行计划如何?有看吗?如果返回的结果集过大或者索引空值问题,有可能系统不会使用索引。

0
优雅先生
优雅先生

sub_time <= to_date('2013-04-02 23:59:59', 'yyyy-mm-dd hh24:mi:ss') and sub_time >= to_date('2013-04-02 00:00:00', 'yyyy-mm-dd hh24:mi:ss')

你在程序中先计算好 to_date('2013-04-02 23:59:59', 'yyyy-mm-dd hh24:mi:ss') 的值,再跑这条SQL看看

返回顶部
顶部