你的位置:首页 > 软件开发 > 数据库 > Join的表顺序

Join的表顺序

发布时间:2015-12-16 11:00:16
在今天的文章里,我想谈下SQL Server里一个非常有趣的话题:在表联接里,把表指定顺序的话是否有意义?每次我进行查询和性能调优的展示时,大家都会问我他们是否应该把联接中的表指定下顺序,是否会帮助查询优化器得出一个更好性能的执行计划。我们来看下这个重要又有趣的问题。合并联接(I ...

Join的表顺序

在今天的文章里,我想谈下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 (#换成@)。

可能感兴趣文章

我的浏览记录