Löschen von Datensätzen mit einem Datum über 3 Tage, für das Rolling 3 -Tage -Job?
-
14-10-2019 - |
Frage
Bevor ich einen sensiblen SQL -Befehl ausführte, wollte ich eine Gesundheitsprüfung durchführen.
Ich versuche Datensätze zu löschen, die eine [habenLoadDt
] Datumswert älter als 3 Tage und mein Code ist:
delete IntraDayStats
where DATEDIFF(dd, LoadDt, dateadd(d,-3, getdate()) ) >= 3
Ich möchte dies als SQL -Job planen, damit mein IntraDayStats
Tisch hat eine 3 -tägige Geschichte. Der Job läuft jeden Abend.
Lösung
where DATEDIFF(dd, LoadDt, dateadd(d,-3, getdate()) ) >= 3
ist nicht sargierbar (ein Index wird nicht verwendet), verwenden
where LoadDt < getdate()- 3
Wenn Sie das nächste Mal nachsehen möchten, machen Sie das nächste Mal DELETE
a SELECT
Und sehen Sie, was Sie zurückbekommen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow