我测试下面这sql语句时发现:
   第一次:           
           
        select count(*)
          from temperature t
         where t.t_checktime >=
               to_date('2013-03-21 00:00:00', 'yyyy-mm-dd HH24:MI:SS')
           and t.t_checktime <=
               to_date('2013-04-10 23:59:59', 'yyyy-mm-dd HH24:MI:SS');
               
  COUNT(*)
----------
    743360
执行计划
----------------------------------------------------------
Plan hash value: 4082582504---------------------------------------------------------------------------------------| Id  | Operation         | Name              | Rows  | Bytes | Cost (%CPU)| Time     |---------------------------------------------------------------------------------------|   0 | SELECT STATEMENT  |                   |     1 |     7 |  3220   (1)| 00:00:39 ||   1 |  SORT AGGREGATE   |                   |     1 |     7 |            |
      ||*  2 |   INDEX RANGE SCAN| IDX_TEMPERATURE_2 | 76271 |   521K|  3220   (1)| 00:00:39 |---------------------------------------------------------------------------------------
第二次:        select count(*)
          from temperature t
         where t.t_checktime >=
               to_date('2013-03-21 00:00:00', 'yyyy-mm-dd HH24:MI:SS')
           and t.t_checktime <=
               to_date('2013-04-11 23:59:59', 'yyyy-mm-dd HH24:MI:SS');
  COUNT(*)
----------
    777600
执行计划
----------------------------------------------------------
Plan hash value: 2391986960--------------------------------------------------------------------------------
--| Id  | Operation          | Name        | Rows  | Bytes | Cost (%CPU)| Time
 |--------------------------------------------------------------------------------
--|   0 | SELECT STATEMENT   |             |     1 |     7 |  3367   (1)| 00:00:41
 ||   1 |  SORT AGGREGATE    |             |     1 |     7 |            |
 ||*  2 |   TABLE ACCESS FULL| TEMPERATURE | 79903 |   546K|  3367   (1)| 00:00:41
 |--------------------------------------------------------------------------------
--第一次查询速度瞬间完成,第二次就等了将近十秒,查询条件只是差了一天而已,为什么会这样的?有人能告诉我一下吗?谢谢了~oralce sql 执行计划sql执行计划

解决方案 »

  1.   

    多了几万数据 是不是数据库正在做其他操作 导致并行效率受影响了
      

  2.   

    第二次就等了将近十秒?同环境下?还是同时有别人在操作数据库
      

  3.   

    试了很多次了,都是这样
    没做其他操作啊 ,我用自己本地的数据库测试的
      

  4.   

    那要是再多查询一天呢 再多几万数据 要多久... 按道理来说 应该是第一次加载会稍微慢点 
      

  5.   

    再多一天 还是十秒左右,再加多几个月也是十秒左右......
      

  6.   

    貌似时间范围大于20天就没用索引了?是不是会这样的啊?
      

  7.   

    我加了个强制索引,就可以了....谢谢大家