在执行计划中隐式执行的顺序
问题描述:
当我查看SELECT查询的执行计划时,我经常会注意到在CPU中发生了排序。问题是我的查询中没有任何顺序,它看起来像排序的原因是为查询中使用的索引列设置的升序/降序。在执行计划中隐式执行的顺序
为什么会发生这种情况,它可以关闭(我应该)?
答
结果使用索引automaticaly进行排序。您可以指定一个order by子句。
这是索引的目的,对数据进行排序以快速找到一些行。
答
SQL Server中有相当多的操作可能会导致将排序添加到计划中,而在查询中不存在ORDER BY
。
DISTINCT
和UNION
将导致排序以摆脱重复。
GROUP BY
可能需要在GROUP BY
列sort
如果计划有一个流聚合,而不是一个哈希总有是返回所需的数据预排序没有合适的索引。
段迭代器(用于排名函数)要求其输入在段列上排序。
你有特定的例子吗?
你能举个例子吗? – 2011-03-16 17:36:28