我有一個運行超快,約爲一秒,一個SQL查詢不使用變量時,如:爲什麼SQL Server在使用變量時變慢?
WHERE id BETWEEN 5461094 and 5461097
但是,當我有:
declare @firstId int
declare @lastId int
set @firstId = 5461094
set @lastId = 5461097
...
WHERE id BETWEEN @firstId and @lastId
...查詢運行非常緩慢,幾分鐘後才完成。爲什麼會發生?我需要使用變量。我可以做任何改進以避免這種性能問題嗎?
在Oracle中,如果範圍總是很小,那麼一切都會好的。它會根據第一個變量來選擇計劃。如果它總是很小,你總是很好。 IT是在極端情況下襬動的情況。我認爲SS最近添加了一些類似於偷看的東西......也許是'05或'08。 – 2008-11-25 18:36:58