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 不能写死
因为你的这条语句会先执行order by 再top 前20条,其它列没有加索引所以排序时很慢!
解决方法:
1、所有可能排序的列加上索引
2、如果用的是sql sever 2000以上的数据库,建议用ROW_NUMBER函数
一次查询只会使用一个索引,大概就是这个原因了.
如何去解决呢?