外部JOIN与内部JOIN

时间:2012-03-30 03:51:35

标签: sql sql-server-2008

我一直认为Inner Join比Outer JOIN表现得更好,但我现在经历过几个不正确的情况......

前几天我用一系列INNER JOINS创建了一个查询。内部连接适用于所有这些连接,因为我只希望在所有连接表中匹配行。

我注意到性能非常糟糕(运行查询1分钟)。奇怪的是,当我将其中的一些切换到外部JOIN时,查询在几秒钟内完成... 这不是预热或缓存的情况,因为我在两次运行之间重新启动了SQL服务器,并且性能读数随着时间的推移是一致的。

我在两个不同的报告中遇到了同样的情况,但共同的主题是通过切换到LEFT JOIN来提高性能。我为两个报告都为同一个表做了切换。所有JOINS都在GUID列上完成

左JOIN给出了相同的行数,因为所有ID都在JOINED表中匹配,所以可以切换,但我很好奇是否有人有解释。 有什么建议吗?

该平台是SQL Server 2008,所有外部JOINS都是LEFT JOINS

1 个答案:

答案 0 :(得分:4)

内连接比左连接快。

This answer应该给你一些提示。