2010-04-01 199 views

回答

9

SQL Server的限制列here

每個查詢表的數目僅受可用資源量的限制。

+0

感謝Barry的回覆。 – kandarp 2010-04-01 07:38:21

9

在SQL Server 2008中,您在SELECT中可以擁有的最大表數量僅受可用資源(source)的限制。

在SQL Server 2005中,單個SELECT存在256個表限制(source)。

雖然,如果你正在接觸這些數字,那麼我會有點擔心tbh!

+2

「Raymond Chen指出,如果您必須詢問操作系統的限制,您可能會做錯某些事情」http://www.codinghorror.com/blog/2007/10/pushing-operating-system-limits。 html – 2010-04-01 07:14:31

+3

我曾經見過任何人遇到限制的唯一時候是他們愚蠢地使用視圖來調用視圖,這些視圖調用了視圖等。如果您使用視圖來調用視圖,現在是時候停下來,而您的系統仍然可以正常工作(你不僅會遇到極限,而且在你遇到極限之前就會遇到嚴重的性能問題)。 – HLGEM 2010-04-01 13:51:32

+1

我們合法地在SQL 2005中打了256次限制一次。 – Joshua 2013-04-08 16:50:54

10

其他的答案已經僅受可用資源

給出直接回答你的問題

有限公司然而,即使SQL Server成功編譯計劃爲您查詢並不意味着你應該。可能的查詢計劃的空間越大,指數級越大,您可能會獲得非常優化的計劃。

對於有12個連接的查詢,可能的連接順序數爲28,158,588,057,600。另外每個連接可以是三種可能的算法(散列,嵌套循環,合併)

在這本書中「SQL Server 2005的實際故障診斷」塞薩爾加林,萊加里亞說

如果要加入超過20桌,優化器可能不是 審查整個搜索空間,但更多地依靠啓發式技術.... 我們已經看到應用程序運行的定期查詢處理超過100個表。雖然可以運行這樣非常大的疑問,你真的 拉伸是在這些情況下,系統應該很 小心去這麼遠

+0

根據Microsoft準則,超過五張表不允許加入SQL Server。這是對的嗎?如果不正確,按照您的觀點,允許在SQL Server中允許加入多少表以獲得更好的性能。 – RGS 2017-07-04 04:37:03

-4

對於inner join,最多256個表可以加入。 對於outer join,最多可以連接2個表格。

來源:課堂培訓。

+0

我建議你在這個培訓中要求退款。編寫一個查詢顯示可以外連接2個以上的表是很簡單的。 – 2017-08-20 19:21:12

相關問題