同一个表的一个查询,在筛选不同的时间区间上。执行的效率时间段越短,为什么执行的查询时间去却越长。总的来说,查询结果越多反而时间越短。实在费解,请高手指教!
查询条件时间区间为'2012-06-01'到'2012-08-31' ,查询结果为32238行, 查询时间为34秒。
查询条件时间区间为'2012-07-01'到'2012-08-31' ,查询结果为21935行, 查询时间为33秒。
查询条件时间区间为'2012-08-01'到'2012-08-31' ,查询结果为9767行, 查询时间为28秒。
查询语句如下: 
1.select * from CCP.ACTION_LOG
WHERE AL_DATE BETWEEN '2012-06-01' AND '2012-08-31'
2.
select * from CCP.ACTION_LOG
WHERE AL_DATE BETWEEN '2012-07-01' AND '2012-08-31'3.
select * from CCP.ACTION_LOG
WHERE AL_DATE BETWEEN '2012-08-01' AND '2012-08-31'

解决方案 »

  1.   

    根据你提供的查询结果,感觉没有问题啊
    查询的时间段越短,记录数越少,而且用时也越少,没有问题啊
      

  2.   

    按照展示的结果来看,很正常,数据量越多时间越长。并且在数据量增多时,时间增长却不是非常明显,总体来说查询不会很过分。
    如果楼主你的展示真的按照你的“题目”那样的话,可以考虑一下下面的问题:
    是否在月初做了一些初始化等等的操作?因为一般应用,可能会对月初做些操作,到时查询时间饭而已长了。
      

  3.   

    LZ说的应该是数据和时间的比例吧
      

  4.   

    楼主要是能理解“200米赛跑的平均速度比100米赛跑的平均速度大”,那这问题也能理解了吧
      

  5.   

    查询条件时间区间为'2012-06-01'到'2012-08-31' ,查询结果为32238行, 查询时间为34秒。
    查询条件时间区间为'2012-07-01'到'2012-08-31' ,查询结果为21935行, 查询时间为33秒。
    查询条件时间区间为'2012-08-01'到'2012-08-31' ,查询结果为9767行, 查询时间为28秒。你这个结果集和执行时间不存在你说的问题啊。时间段跨度递减,查询时间也在递减啊
      

  6.   

    32238行, 查询时间为34秒
    21935行, 查询时间为33秒
    9767行, 查询时间为28秒这难道不是很正常么...