分类目录

链接

2012 年 5 月
 123456
78910111213
14151617181920
21222324252627
28293031  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > SQL Server > 正文
优化器部分的SQL查询
SQL Server 暂无评论 阅读(2,000)

选择提示,提示、技巧从雨果在RDBMS Kornelis = ' SQL服务器的
好奇的情况下的优化,不

优化器部分的SQL查询和reorders把你和你的质疑该如何找出最适的执行计划。在理论。

在实践中,这并不总是顺利完成。通常情况下,优化管理的方式来执行一个复杂的查询效率很低,但有时,它没有包括一个选项,似乎是那么简单,你只能盯在绝对的惊讶执行计划之前去接地点。

这里是一个例子,我最近碰到。我测试它在SQL服务器2012和SQL Server 2008 R2,再现两个。 执行查询在下面的AdventureWorks样本数据库中,可以选择包括实际执行计划使(Ctrl + M),或请求估计执行计划(Ctrl-L)。

SELECT   TerritoryID,
Name,
SalesLastYear,
SalesYTD,
RANK() OVER (ORDER BY SalesLastYear) AS Rank1,
RANK() OVER (ORDER BY SalesYTD) AS Rank2
FROM     Sales.SalesTerritory
ORDER BY SalesLastYear;

当后的数据流(所读的执行计划从右到左),我们都看到,这份报告数据第一次读(一个无序的群集指数扫描,由于没有更好的指标有),然后按SalesLastYear,这样就可以计算Rank1(用两段算子和算子序列项目——不要问)。在那之后,排再分类,现在由SalesYTD,我们又看到了一个结合了两种段和一序列的计划,因为Rank2的计算。然后,最后,通过SalesLastYear re-sorted排,这样他们就能够回到队中所要求的订单

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:优化器部分的SQL查询 | Bruce's Blog

发表评论

留言无头像?