2011-02-14 87 views
3

我們討論了SQL Server 2008並加入。一半說越多,加入你的SQL運行越慢。另一半說ihat並不重要,因爲SQL服務器負責處理業務,所以你不會注意到任何性能損失。什麼是真的?加入減慢sql

+1

它影響性能,可能會更好,可能會更糟。這一切都取決於你加入什麼和如何,以及你的替代方案。 – 2011-02-14 11:11:58

+2

你在問正常化的好處嗎? – 2011-02-14 11:14:47

回答

2

不要問這個問題,你有辦法,考慮替代:

  • 我能得到沒有我想要的數據連接?
    • 否=>您需要加入,討論結束。

這也是一個程度問題。加入而不是不可能添加額外的處理。即使查詢優化器將其取出(例如,在連接中沒有使用任何內容的情況下留下連接) - 它仍然需要花費CPU週期來解析它。

現在,如果一個問題是關於比較加入到另一種技術,留下了諸如一個特例JOIN + IS NULL VS那不存在一個record in X not in Y場景,然後讓我們來討論細節 - 表的大小(X VS Y),索引等。

0

慢下來:查詢越複雜,數據庫服務器執行的操作越多。

但是關於那個「表現損失」:超過了什麼?是否有另一種方式獲得相同的數據?如果是這樣,那麼你可以分析各種選項,看看哪個是最快的。