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.

War es hilfreich?

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
scroll top