Datetime的哪个条件会更快?

时间:2012-04-05 12:03:38

标签: sql sql-server tsql sql-server-2005

我在表中有一个名为CreatedOn的Datetime列。 CreatedOn也是订单下降的非聚集索引的一部分。

以前在那里我的条件如下

WHERE DateDiff(d,CreatedOn,GetDate()) < 180 AND ... other conditions

我将此更改为

WHERE CreatedOn > '2012-04-04 00:00:00.000' AND ... other conditions

我在C#代码中计算截止日期,然后将其放入adhoc查询中。

据我所知,第二个条件应该更快,但我还没有看到查询执行时间的重大变化。但随着桌子大小的增加,哪一个会跑得更快?

1 个答案:

答案 0 :(得分:6)

第二种形式。

在列上放置函数会使索引的使用无效(几乎在所有情况下,所以只需遵循此规则)。见"Ten Common SQL Programming Mistakes",第2期