У меня есть запрос, который принимает datetime в качестве параметра, и мы заметили, что если вы предоставите параметр datetime через переменную, Query потребуется в 2-3 раза больше времени для выполнения, чем если бы вы жестко закодировали параметр, причина или решение проблемы
Следующий запрос занимает около 5 минут, чтобы вернуть результат
Declare @Date as DateTime
Set @Date = '01/01/2009'
Select * from TempTable where effdate = @Date
Пока как
Select * from TempTable where effdate = '01/01/2009'
возвращается через 10–20 с
Не всегда у меня будет индекс по столбцу, с помощью которого я хочу выполнить поиск.
В соответствии с рекомендациями kevchadders, я увидел огромную разницу в плане выполнения. Запрос с переменной даты выполнял сканирование кластерного индекса, а другой выполнял поиск индекса.