在今天的文章里,我想谈下SQL Server里一个非常有趣的话题:在表联接里,把表指定顺序的话是否有意义?每次我进行查询和性能调优的展示时,大家都会问我他们是否应该把联接中的表指定下顺序,是否会帮助查询优化器得出一个更好性能的执行计划。我们来看下这个重要又有趣的问题。合并联接(I ...
在今天的文章里,我想谈下SQL Server里一个非常有趣的话题:在表联接里,把表指定顺序的话是否有意义?每次我进行查询和性能调优的展示时,大家都会问我他们是否应该把联接中的表指定下顺序,是否会帮助查询优化器得出一个更好性能的执行计划。我们来看下这个重要又有趣的问题。
合并联接(Inner Joins)
假设在AdventureWorks数据库里,你要在Sales.SalesOrderHeader表和Sales.SalesOrderDetail表之间做一个内联接:
1 USE AdventureWorks 2 GO 3 4 -- Returns for each SalesOrderHeader record all associated SalesOrderDetail records 5 -- SQL Server performs a Merge Join, because both tables are phyiscally sorted 6 -- by the column "SalesOrderID". 7 SELECT 8 h.SalesOrderID, 9 h.CustomerID,10 d.SalesOrderDetailID,11 d.ProductID,12 d.LineTotal13 FROM Sales.SalesOrderHeader h14 JOIN Sales.SalesOrderDetail d15 ON h.SalesOrderID = d.SalesOrderID16 ORDER BY SalesOrderID17 GO
原标题:Join的表顺序
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。