sql - INNER JOIN 与 INNER JOIN (SELECT . FROM)

标签 sql sql-server join inner-join

同一查询的这两个版本之间的性能有什么区别吗?

--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/

相关文章:

SQL Server 服务代理 - 消息超时

ruby-on-rails - 无法写入未知属性 `scrapbook_entry_id'

mysql - 简单的连接查询在本地主机中工作但在服务器中不起作用?

sql - DISTINCT INNER JOIN 慢

SQL Server 代理未报告因 PowerShell 脚本中未捕获的异常而导致的失败

php - 通过 jquery 可折叠的动态 BOM?

sql-server - Golden Gate 不同步所有记录

mysql - 根据 id 使用新列值更新整个列

sql - 在 PostgreSQL 中实现多对多关系的最佳方式是什么?

sql - 根据最高值更改列