在调整一个存储过程时突然出现了一个问题。让我问一下 -
我有两个表,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。
答案 0 :(得分:6)
别名和连接中表的顺序(假设它是INNER JOIN
)不会影响最终结果,因此不会影响性能,因为当查询是查询时,订单是替换(如果需要)执行。
您可以在此处阅读有关关系代数的更多基本概念: http://en.wikipedia.org/wiki/Relational_algebra#Joins_and_join-like_operators