由于DATETIME或ODBC文字

时间:2015-10-01 13:58:15

标签: sql-server datetime query-performance

我正在制作一份简单的SSRS报告。如此简单,不值得进入。 查询非常简单。再这么简单。

我遇到的问题是,基于使用DATETIME变量或ODBC文字,管理工作室的性能大幅下降。

那么这个查询

DECLARE @StartDate AS DATETIME = '2015-09-15'
DECLARE @EndDate AS DATETIME = '2015-10-01'
SELECT * 
FROM dbo.HEADER 
WHERE TRANSDATE BETWEEN @StartDate AND @EndDate

执行非常糟糕...就像没有那么多记录那样30秒。

然后这个查询...

SELECT * 
FROM dbo.HEADER 
WHERE TRANSDATE BETWEEN {ts '2015-09-15 00:00:00.00'} AND {ts '2015-10-01 00:00:00.00'}

跑得很快......就像0秒。

任何人都可以为我解释这种行为吗?在我看来,SQL服务器会将它们视为相同,但显然我错了。

0 个答案:

没有答案