查詢優化對於SQL Server有不同順序的WHERE子句有什麼區別嗎?SQL Server的WHERE子句的排序
例如,將這個查詢計劃:
select * from table where col1 = @var1 and col2 = @var2
不同從這個?:
select * from table where col2 = @var2 and col1 = @var1
當然,這是一個人爲的例子,我曾嘗試更復雜的了。查詢計劃對於兩者來說都是一樣的,但我總是想知道是否值得排序WHERE子句,使得最具體的子句最先出現,以防優化器以某種方式「修剪」結果並最終變得更快。
這實際上只是一個思想實驗,我並不想解決特定的性能問題。
其他RDBMS的呢?
如果col1有一個索引,而col2沒有,它可能會有所不同。 – rsp 2009-11-10 10:50:05
@rsp從人們所說的話來看,如何格式化查詢並不會產生什麼影響 - 查詢優化器無論如何都會自己動手,並根據哪些列有索引等命令謂詞。 – 2009-11-10 11:07:51