索引是否会加速计算两个日期时间值的DATEDIFF?

时间:2014-02-14 18:15:39

标签: sql sql-server performance tsql sql-server-2012

我有一个包含三列的表格:

id | start_date | end_date

我有一个显示idDATEDIFF(hour, start_date, end_date)的视图:

id | timespan

将日期列上的索引加快查询速度吗?这只适用于DATEADD吗?如果是这样,为什么?我的理解是,对于像这样的算术查询,需要TABLE SCAN

1 个答案:

答案 0 :(得分:4)

没有。它没有。

您可以创建计算列并在其上创建索引:

alter table <table> add duration as datediff(hour, start_date, end_date);

create index on <table>(duration);

当然,如果在duration子句,where子句或on中使用order by,则索引最有用。