У меня есть таблица с двумя значениями:SQL переменная занимает больше времени, чтобы вернуться, чем статическое значение
ciid, businessdate
ciid является первичным ключом, и имеет автоматическое приращение включено. businessdate (datetime) вставляется другим процессом.
данные следующие запросы:
select top(1) ciid, businessdate
from checkitemsales
where businessdate='10/9/16 00:00:00:000'
Это занимает всего 1,2 секунды, чтобы вернуться, в то время как этот запрос:
declare @var1 datetime
set @var1='10/9/16 00:00:00:000'
select top(1) ciid, businessdate
from checkitemsales
where businessdate = @var1
занимает более 5,6 секунд, чтобы вернуться.
может ли кто-нибудь сказать мне, что я делаю неправильно?
Попробуйте запустить запросов несколько раз, чтобы увидеть, если тайминги последовательны. Вероятно, они должны иметь такую же производительность. –
, конечно, метод 2 занимает больше времени по сравнению с методом 1, потому что каждый раз, когда запрашиваются данные, ему нужно обратиться к этому «set @ var1 = '10/9/16 00: 00: 00: 000 ' " data – KyLim
Проверьте планы запросов. Может быть, в кэше есть плохой план для второго запроса. – Blorgbeard