上のインデックスはまずあなたが日付にインデックスを持っていることを確認してくださいがありますことを確認してください。
インデックスがある場合は、実行計画をチェックし、使用していることを確認します。索引を使用すると最も効率的な削除処理方法であることに常に注意する必要はないことに注意してください。大量のレコードを削除する場合(大雑把なルールが10%を超えている場合)フルスキャンよりも大きくすることができます。
大きなテーブルの場合、統計情報が最新であることを確認する価値があります(sp_updatestats)。データベースにテーブルの行数が誤っていると、実行計画に不適切な選択が行われるためです。たとえば、統計情報が不正確な場合、データベースに存在するレコードがテーブル内のレコード数よりもはるかに少ないと考えられるため、データベースはインデックスを無視することになります。日付の奇数分布にも同様の影響があります。
おそらく、インデックスを日付にドロップしてからもう一度作成してみてください。インデックスはバイナリツリーであり、効率的に動作するためには、それらをバランスさせる必要があります。データが時間とともに蓄積された場合、索引はうまくいきませんし、照会は適切なデータを見つけるのに時間がかかるかもしれません。この問題と統計の両方の問題は、データベース保守作業によって自動的に処理されるはずですが、しばしば見落とされます。
最後に、テーブルに他の多くのインデックスがあるかどうかは言いません。データベースがインデックスを再編成する際に、削除を進めるとともにインデックスを更新する際に、問題が発生している可能性があります。少し徹底的ですが、削除を実行する前にテーブルの他のすべてのインデックスを削除してから、再度作成してください。
'[Date]'にインデックスがありますか? –
列の名前をDate以外の名前に変更することを検討してください。予約語と同じ列名を使用することは決して**まったくありません。ある時点で痛みの世界に終わるだけです。それはあまりにも怠惰です - それは日付ではなく、それは創造期または投稿された日付またはsomesuchです。それに適切な名前を付けます。 – Cruachan