我一直认为Inner Join比Outer JOIN表现得更好,但我现在经历过几个不正确的情况......
前几天我用一系列INNER JOINS创建了一个查询。内部连接适用于所有这些连接,因为我只希望在所有连接表中匹配行。
我注意到性能非常糟糕(运行查询1分钟)。奇怪的是,当我将其中的一些切换到外部JOIN时,查询在几秒钟内完成... 这不是预热或缓存的情况,因为我在两次运行之间重新启动了SQL服务器,并且性能读数随着时间的推移是一致的。
我在两个不同的报告中遇到了同样的情况,但共同的主题是通过切换到LEFT JOIN来提高性能。我为两个报告都为同一个表做了切换。所有JOINS都在GUID列上完成
左JOIN给出了相同的行数,因为所有ID都在JOINED表中匹配,所以可以切换,但我很好奇是否有人有解释。 有什么建议吗?
该平台是SQL Server 2008,所有外部JOINS都是LEFT JOINS