2011-02-14 51 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

慢下来:查询越复杂,数据库服务器执行的操作越多。

但是关于那个“表现损失”:超过了什么?是否有另一种方式获得相同的数据?如果是这样,那么你可以分析各种选项,看看哪个是最快的。