SQL server的top order by问题

 今天在使用SQL Server的时候 就是 类似 select * from [表名] order by [字段]  这句话 , 性能会很慢,但是加上top  10 ,性能会很大的改善,所以我在疑惑,数据库的机制是不是边排序边查?还是先排序完再查?

有了top,数据库就可以进行归并排序等,然后只保留top10的数据,而不需要保存所有的数据,这样可以大幅减少内存,以及最后的排序处理。

select * from [表名] order by [字段]
select top 10 * from [表名] order by [字段]

如果要有明显的查询区别,首先得确认你这张表里面的数据量是多少。
如果表里就是几条数据,那没所谓快慢,至少很难看出来;
若这张表数据量比较大,比如有个100W条, 那上述的方法应该就区别比较明显了。

数据库的查询机制肯定是按有序来的,无序会非常耗性能,也不科学。