关于SELCET TOP 的查询效率问题 现在有一张表 order ,有20万条记录,用 select top 200 * from order 查询大约要13秒,直接select * from order 查询出这个20多万记录,只需要8秒,有哪位知道是什么原因呢? 另外,这个是在新买的电脑上测试的,在用以前的就电脑的时候,用top比直接用select * 要快,用新电脑反而慢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那是因为要排序嘛 你order by的字段估计不是聚集索引(主键) 多运行几次,看结果是不是一致的,另外看看TOP时有没有排序。 select top 200 * from order ...这条语句有排序的问题导致运行时间长的问题。 select top 200 * from order by xx--sql server 先取出所有数据 然后排序--解决办法 对order by 后面的xx列 加索引(这样会对索引排序,然后lookup效率就提高了) LZ用系统关键字order作为表名就是个杯具。 SELECT TOP(200)* FROM TB --先扫描表tb-在执行排序-输出SELECT FROM TB --描表tb-输出 排序字段未建立索引的话,这两个操作都需要把全部记录从硬盘读入内存,不同的是top还要进行计算(即排序),而另一个则直接输出,所以top慢;有索引的话,top是将索引读进内存(这个比全部记录肯定要小的多)分析出前200条,再把相关记录(不是全部)读入内存并显示,另一个仍然是读入全部记录并显示,所以top快 请问下面这个问题改怎么改呢?谢了! 利用SQL实现分级汇总相加 为什么这两个表达式都用Ceiling函数,结果不一样 关于不等列CSV 文件导入SQL Server execute sp_executesql 一次可以执行多句SQL语句吗 关于排序的问题 高手赐教:sql:报错(1060),线上等回复,谢谢!! 请各位大大帮忙!我是新人,公司让我设计一个数据库方案,列如图书销售管理,请问应该注意那些方面与重点! 求一条查询语句(急) 急!关于SQL7的设置。 SQL2005 用户SA的密码怎么老是会自动修改? 查询输出问题
select top 200 * from order by xx
--sql server 先取出所有数据 然后排序
--解决办法 对order by 后面的xx列 加索引(这样会对索引排序,然后lookup效率就提高了)
LZ用系统关键字order作为表名就是个杯具。
SELECT FROM TB --描表tb-输出
有索引的话,top是将索引读进内存(这个比全部记录肯定要小的多)分析出前200条,再把相关记录(不是全部)读入内存并显示,另一个仍然是读入全部记录并显示,所以top快