1

DateTime型の列「transactiondate」を持つテーブル「customertransactions」があります。

私はそれを次のように照会します:

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ます。さらに、日付句を仮可能になるように書き直すことができる場合はインデックス作成のメリットも得られる可能性がありtransactiondateます。

いつものように、データのカーディナリティを考慮し、インデックスを追加するときにクエリプランを調べます。厳格なルールはありません。

于 2012-06-26T15:58:58.030 に答える