在SQL Server Management Studio的2012年,我運行此查詢:爲何在包含WHERE的情況下SELECT命令運行得更快?
SELECT * FROM Contacts
此查詢成功執行約44秒。
SELECT * FROM Contacts WHERE FirsttName = 'David"
該查詢在約0秒內成功執行。所以我想我的問題是什麼導致這些查詢時間如此不同。從我公認的天真的角度來看,我認爲在這兩種情況下,所有的錶行都需要進行調查,以檢查FirstName是否等於'David',並且條件不應該具有這麼大的影響。實際上,由於額外的檢查,我認爲查詢會花費更長的時間。
另一個實例是:
SELECT * FROM Jobs
成功執行在大約25秒。
SELECT * FROM Jobs WHERE JobName = "Sales"
在大約0秒內成功執行。
這不是一個危及生命/阻塞/哦我的上帝爲什麼我不能解決這個問題。只是讓我想知道的事情。
可能在這些列上定義了索引。 – muratgu
它發生在所有列。 – dckuehn
最重要的因素是找到的記錄數。他們必須被移動。 –