在Vs单一条件之间

时间:2017-06-26 11:10:35

标签: sql db2 between

与单一条件相比,为什么between运算符需要很长时间才能执行。

select a,b from table where trunc(a) between '2000-04-01' and '2016-03-31'

select a,b from table where trunc(a)>='2000-04-01'

第一个执行与第二个执行相比需要很长时间,即使有相同的记录也没有。

1 个答案:

答案 0 :(得分:0)

我不确定为什么第一次需要更长的时间。如果您只运行一次查询,那么可能是因为冷缓存与暖缓存。

但是,我认为最好不使用between来编写查询:

where a >= '2000-04-01' and a < '2016-04-02'

这样做有两个原因。首先,查询可以利用索引(尽管这可能并不重要,因为日期范围太宽)。此外,无论a是否具有时间组件,这都有效。