返回我有一個表有兩個值:SQL變量需要更長的時間比靜態值
ciid, businessdate
CIID是主鍵,並具有自動遞增開啓。 businessdate(日期時間)由另一個進程插入。
給出以下查詢:
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