INNER JOIN的表现取决于表的顺序吗?

时间:2013-10-26 21:41:58

标签: sql sql-server performance sql-server-2005

在调整一个存储过程时突然出现了一个问题。让我问一下 -

我有两个表,table1和table2。 table1包含大量数据,table2包含较少的数据。这两个查询之间是否存在性能差异(我正在改变表的顺序)?

查询1:

SELECT t1.col1, t2.col2
FROM table1 t1
INNER JOIN table2 t2
ON t1.col1=t2.col2

QUERY2:

SELECT t1.col1, t2.col2
FROM table2 t2
INNER JOIN table1 t1
ON t1.col1=t2.col2

我们正在使用Microsoft SQL Server 2005。

1 个答案:

答案 0 :(得分:6)

别名和连接中表的顺序(假设它是INNER JOIN)不会影响最终结果,因此不会影响性能,因为当查询是查询时,订单是替换(如果需要)执行。

您可以在此处阅读有关关系代数的更多基本概念: http://en.wikipedia.org/wiki/Relational_algebra#Joins_and_join-like_operators