SQL SERVER 创建了聚类索引,查询后是否还需要排序??求高手指教

如题,我有一个表其中是按照ID创建了一个聚类索引
比如
有一个study表有如下几列:
id name score

我在id上建立一个聚类索引,当我有如下查询时, 是否有必要加上order by id, 如果不加貌似也是按照顺序排序的,是不是可以不加??
select * from study where score >60 order by id

作者: wangjunhe   发布时间: 2011-06-09

可以不加。

作者: zy112429   发布时间: 2011-06-09

我试过,加了以后花费时间更长,楼上的确定可以不加吗

作者: wangjunhe   发布时间: 2011-06-09

引用 1 楼 zy112429 的回复:

可以不加。
are you sure?

作者: wangjunhe   发布时间: 2011-06-09

引用 3 楼 wangjunhe 的回复:
引用 1 楼 zy112429 的回复:

可以不加。
are you sure?

还是 加吧, 你加了后出来的肯定是按 ID 顺序的。
而假如你不加,出来的结果 要根据查询优化器选择的 执行计划

作者: abcjun188   发布时间: 2011-06-09

引用 4 楼 abcjun188 的回复:

引用 3 楼 wangjunhe 的回复:
引用 1 楼 zy112429 的回复:

可以不加。
are you sure?

还是 加吧, 你加了后出来的肯定是按 ID 顺序的。
而假如你不加,出来的结果 要根据查询优化器选择的 执行计划
跟执行计划貌似没什么关系吧,最终的结果好像还是根据物理存储里面读取出来的,聚类索引本身就是在存储里按顺序放的,所以读取的结果还是顺序的,不知道分析的对不对

作者: wangjunhe   发布时间: 2011-06-09

引用 5 楼 wangjunhe 的回复:
引用 4 楼 abcjun188 的回复:

引用 3 楼 wangjunhe 的回复:
引用 1 楼 zy112429 的回复:

可以不加。
are you sure?

还是 加吧, 你加了后出来的肯定是按 ID 顺序的。
而假如你不加,出来的结果 要根据查询优化器选择的 执行计划
跟执行计划貌似没什么关系吧,最终的结果好像还是根据物理存储里面读取出来的,聚类索引本身就是……


SQL code
好吧,一切看运气,要不你试一试执行下面两句

create index test_study on study(name)
select id from study 

作者: abcjun188   发布时间: 2011-06-09

--如果你的结果有排序的需求。加!
--不要靠SQL SERVER自己的排序,即使是聚集索引

作者: wwwwgou   发布时间: 2011-06-09