2010-02-16 45 views

回答

1

是的。其效果可以在查詢執行計劃中看到。請參閱thisthis。 另一個鏈接是here

+1

連接序列的效果在使用更多連接和更多連接的複雜查詢中可見。 – 2010-02-16 18:41:22

4

不,不。

SQL Server的優化選擇最佳(它認爲)的方式,無論連接順序上。

SQL Server支持一個特殊的提示,FORCE ORDER,這使得表格按照它們列出的順序在連接中處於領先地位。

這些查詢:

SELECT * 
FROM t_a 
JOIN t_b 
ON  a = b 
OPTION (FORCE ORDER) 

SELECT * 
FROM t_b 
JOIN t_a 
ON  a = b 
OPTION (FORCE ORDER) 

將產生其中省略和添加有不同的計劃OPTION (FORCE ORDER)相同的計劃。

然而,只有當你絕對相信你知道自己在做什麼,你應該使用這個提示。

+1

永遠不要使用提示,除非系統絕對死於緩慢的死亡。你怎麼知道下一個版本的SQL Server不能以另一種方式工作,導致你的提示減慢了速度? – 2010-02-16 21:03:37

0

優化通常會比較所有的連接順序,儘量選擇最佳的順序,無論你在一些複雜的查詢,但是寫的查詢的順序有太多的問題需要考慮,注意可能的數量加入訂單增加到加入的表的數量的階乘。在這種情況下,優化器不會考慮所有選項,但肯定會考慮您在查詢中編寫聯接的順序,因此可能會影響執行計劃和執行時間。

0

對於外連接,表的順序改變您的查詢的含義,很可能會改變執行計劃。

相關問題