执行计划中的Sql Server隐式排序

时间:2011-03-16 15:12:00

标签: sql-server sql-server-2005

当我查看SELECT查询的执行计划时,我经常会注意到在CPU中抛出的类型。问题是我的查询中没有任何顺序,看起来排序的原因是为查询中使用的索引上的列设置了升序/降序。

为什么会发生这种情况,是否可以关闭(我应该这样做)?

2 个答案:

答案 0 :(得分:3)

SQL Server中有很多操作可能导致在计划中添加排序,而查询中没有ORDER BY

DISTINCTUNION会导致排序重复。

如果计划具有流聚合而不是哈希聚合,并且没有合适的索引返回预先排序的所需数据,则

GROUP BY可能需要sort列上的GROUP BY

段迭代器(用于排名函数)要求其输入在段列上排序。

你有一个特定的例子吗?

答案 1 :(得分:2)

结果使用索引自动排序。您可以指定order by子句 这是索引的目的,排序数据以便快速找到一些行。