6

機密性の高い SQL コマンドを実行する前に、サニティ チェックを行いたいと考えていました。

LoadDt[ ] の日付値が 3 日より古いレコードを削除しようとしています。私のコードは次のとおりです。

delete IntraDayStats
where DATEDIFF(dd, LoadDt, dateadd(d,-3, getdate()) ) >= 3 

IntraDayStatsこれを SQL ジョブとしてスケジュールして、テーブルに 3 日間のローリング履歴があるようにしたいと考えています。ジョブは毎晩実行されます。

4

1 に答える 1

9
where DATEDIFF(dd, LoadDt, dateadd(d,-3, getdate()) ) >= 3 

sargable ではありません (インデックスは使用されません)。

where LoadDt < getdate()- 3 

次回確認したい場合は、DELETEaを作成して、SELECT何が返されるかを確認してください

于 2011-01-03T14:57:41.607 に答える