1

我有一个表'customertransactions',其中有一列'transactiondate' 类型为DateTime。

我将使用以下内容查询它:

SELECT SUM(balance) AS totalbal FROM customertransactions WHERE accountcode=?
AND (MONTH(GETDATE())-MONTH(transactiondate)+12*(YEAR(GETDATE())-YEAR(transactiondate)))>= 3

...显然为“accountcode”传递了一个经过清理的参数。

我的问题是 - 我如何最好地创建一个索引来优化它?

谢谢。

4

1 回答 1

2

首先,我会考虑索引accountcode. 此外,如果您可以重写 date 子句使其成为sargable,那么您也可以从索引transactiondate中受益。

与往常一样,考虑数据的基数,并在添加索引时检查查询计划。没有硬性规定。

于 2012-06-26T15:58:58.030 回答