首页 新闻 赞助 找找看

sql优化问题

0
悬赏园豆:5 [已解决问题] 解决于 2015-06-29 14:25

SQL优化问题,加上top后速度变的很慢。 order by 如果与条件相一致的话,速度就很快。

SELECT  TOP 20 * FROM VTJ_SafeRecord WHERE RemoteMonitorAccord='符合条件已安装' ORDER BY ID DESC

查出的结果需要10秒

如果把order by ID 改为  order by RemoteMonitorAccord 速度就很快,求解~ 

 

这里的排序是用户自定义的。 所以,order by 不能写死

最初的、天空的主页 最初的、天空 | 初学一级 | 园豆:40
提问于:2015-06-23 15:48
< >
分享
最佳答案
0

因为你的这条语句会先执行order by 再top 前20条,其它列没有加索引所以排序时很慢!

解决方法:

1、所有可能排序的列加上索引

2、如果用的是sql sever 2000以上的数据库,建议用ROW_NUMBER函数

收获园豆:5
junjieok | 小虾三级 |园豆:779 | 2015-06-28 02:24
其他回答(1)
0

一次查询只会使用一个索引,大概就是这个原因了.

吴瑞祥 | 园豆:29449 (高人七级) | 2015-06-23 16:20

如何去解决呢? 

支持(0) 反对(0) 最初的、天空 | 园豆:40 (初学一级) | 2015-06-23 16:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册