sql语句如下:
select * from
(select * from test where name='a' order by uptime)
where rownum <=100如果改成这样写:select * from test where name='a' and rownum <=100 order by uptime,速度明显提高,但是结果是错的,因为这样是先取100条,再排序。说明:uptime为时间字段,已建立索引,内容有重复,不能设置为主键。现在库里有一千多万的数据,查询耗时为50来秒,求哪位高能提高下查询速度?
select * from
(select * from test where name='a' order by uptime)
where rownum <=100如果改成这样写:select * from test where name='a' and rownum <=100 order by uptime,速度明显提高,但是结果是错的,因为这样是先取100条,再排序。说明:uptime为时间字段,已建立索引,内容有重复,不能设置为主键。现在库里有一千多万的数据,查询耗时为50来秒,求哪位高能提高下查询速度?
2、可能数据库有问题
3、可能索引失效
分析下执行计划