3

テーブルにCreatedOnという日時列があります。CreatedOnは、順序が降順である非クラスター化インデックスの一部でもあります。

以前はwhere条件で次のような条件がありました

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

これをに変更しました

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

ここで、C#コードでカットオフ日を計算し、それをアドホッククエリに入れています。

私によると、2番目の条件はより高速であるはずですが、クエリの実行時間に大きな変化はまだ見られません。しかし、テーブルのサイズが大きくなると、どちらがより速く実行されますか?

4

1 に答える 1

6

2番目の形式。

列に関数を配置すると、インデックスの使用が無効になります(ほとんどの場合、このルールに従うだけです)。「10の一般的なSQLプログラミングの間違い」、番号2を参照してください。

于 2012-04-05T12:13:42.737 に答える