请问 
select top 10 * from table
是不是先从表里把数据全部取出来再取出10条 
还是只取前10条出来?我通过查询分析器看到先是表扫描
再执行top操作

解决方案 »

  1.   

    如果是全部取出来的话如果我一个表数据很多  那不是要占很多的内存?或者sqlserver有自己特殊的处理方式?
      

  2.   

    如果仅仅是"select top 10 * from table"这样,没有where或是其它关键字,默认情况应该是扫描聚集索引的前10条记录,速度是很快的,不会出现你说的先全表扫描再取前10,但如果你带了where或是order之类的关键字,那情况又不一样了,具体情况要再具体分析