2011-01-03 1 views
6

Перед выполнением секретной команды sql я хотел выполнить проверку работоспособности.Удаление записей, имеющих дату более 3 дней, для прокатки 3-дневной работы?

Я пытаюсь удалить записи, которые имеют [LoadDt] значение даты старше 3-х дней, и мой код:

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

Я хочу, чтобы запланировать это как SQL работу, так что моя IntraDayStats таблица имеет 3-х дневная история. Работа будет работать в ночное время.

ответ

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

не sargable (индекс не будет использоваться), используйте

where LoadDt < getdate()- 3 

В следующий раз, если вы хотите проверить, сделать DELETE в SELECT и посмотреть, что вы получите обратно

+0

Что можно сделать? я никогда не слышал об этом ... я сделал выбор, но хотел дважды проверить логику в течение трех дней. спасибо – kacalapy

+0

http://en.wikipedia.org/wiki/Sargable – SQLMenace

 Смежные вопросы

  • Нет связанных вопросов^_^