select *
from table1 t1
where
t1.somedate between UDF(date1) and UDF(date2)
UDF:用户定义函数
这UDF(date1)
和UDF(date2)
, 是否会针对 的每一行进行评估t1
。
这会降低性能。
我试过的第二个选项
declare @a datetime, @b datetime
set @a=UDF(date1)
set @b=UDF(date2)
select *
from table1 t1
where
t1.somedate between @a and @b
即使这样也需要很长时间。
可能是什么原因,可能是什么解决方法。
如果我写
select *
from table1 t1
where
t1.somedate between date1 and date2
它非常快。大约需要 3 秒。以上查询需要 2-3 分钟。