Kar*_*run 52 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
Run Code Online (Sandbox Code Playgroud)
我听说(由DBA)说版本2更快,因为它在内部SELECT语句中仅获取查询所需的列.但这似乎没有意义,因为查询性能(据我所知)是基于受影响的行数和返回的最终列列表.
两者的查询计划是相同的,所以我猜这两者之间没有任何区别.
我对么?
Mad*_*nan 11
没有太大的区别.当你有一些应该在它之外加入的计算,聚合等时,如何更容易
--Version 2
SELECT p.Name, s.OrderQty
FROM Product p
INNER JOIN
(SELECT ProductID, SUM(OrderQty) as OrderQty FROM SalesOrderDetail GROUP BY ProductID
HAVING SUM(OrderQty) >1000) s
on p.ProductID = s.ProdctId
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
196804 次 |
| 最近记录: |