我正在使用 SQL Server 2008-R2,我需要使用多个表联接。在这种情况下,使用 WHERE 语句或使用 INNER JOIN 和 ON 语句时,哪个查询具有更好的时间性能?这两个语句都使用 AND 运算符来表示多个条件。
我想知道是否还有针对该问题的一些相关查询调整。
上述选项的示例代码:
1)
SELECT *
FROM T1,T2,T3....
WHERE T1.ID = T2.ID AND
T1.ID = T3.ID AND
....
2)
SELECT *
FROM T1
INNER JOIN T2
ON T1.ID = T2.ID
INNER JOIN T3
ON T1.ID = T3.ID
INNER JOIN .....
发送。
最佳答案
快速回答:不,性能没有差异。
这是一个相当常见的问题,这里有很好的解释:INNER JOIN ON vs WHERE clause
SQL Server 中的查询优化引擎会自动将这两个查询转换为相同的方法来检索结果。
查询性能的最大差异是联接的顺序以及每个新联接过滤的数据量。最具选择性的连接语句(过滤掉最多的结果)应该首先出现(尽可能取决于您要连接的表)。
关于sql - SQL中Join语句的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618393/