同一查询的这两个版本之间的性能有什么区别吗?
--Version 1
SELECT p.Name, s.OrderQty
FROM Product p
INNER JOIN SalesOrderDetail s on p.ProductID = s.ProductID
--Version 2
SELECT p.Name, s.OrderQty
FROM Product p
INNER JOIN (SELECT ProductID, OrderQty FROM SalesOrderDetail) s on p.ProductID = s.ProductID
我听说(DBA)说版本 2 更快,因为它在内部 SELECT 语句中仅提取查询所需的列。但这似乎没有意义,因为查询性能(据我所知)基于受影响的行数和返回的最终列列表。
两者的查询计划是相同的,所以我猜两者之间没有任何区别。
我说得对吗?
最佳答案
你是对的。您做了完全正确的事情,检查查询计划而不是试图事后猜测优化器。 :-)
关于sql - INNER JOIN 与 INNER JOIN (SELECT . FROM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574442/