2011-03-16 57 views
2

當我查看SELECT查詢的執行計劃時,我經常會注意到在CPU中發生了排序。問題是我的查詢中沒有任何順序,它看起來像排序的原因是爲查詢中使用的索引列設置的升序/降序。在執行計劃中隱式執行的順序

爲什麼會發生這種情況,它可以關閉(我應該)?

+0

你能舉個例子嗎? – 2011-03-16 17:36:28

回答

2

結果使用索引automaticaly進行排序。您可以指定一個order by子句。
這是索引的目的,對數據進行排序以快速找到一些行。

3

SQL Server中有相當多的操作可能會導致將排序添加到計劃中,而在查詢中不存在ORDER BY

DISTINCTUNION將導致排序以擺脫重複。

GROUP BY可能需要在GROUP BYsort如果計劃有一個流聚合,而不是一個哈希總有是返回所需的數據預排序沒有合適的索引。

段迭代器(用於排名函數)要求其輸入在段列上排序。

你有特定的例子嗎?