日期:2014-05-17  浏览次数:20811 次

查询语句效率
asp.net连接oracle数据库查询数据库,表记录数才十万,但发现查询速度很慢,翻到下一页需要两三秒
语名如下:

select * from (select rownum r_n,temptable.* from 
(select * from 表名 where 1=1 order by 编号) temptable ) where r_n between 41 and 60

请大家指点一下如何优化.

------解决方案--------------------
你这个写法没办法用上stopkey,

这样写:
select * from (select rownum r_n,temptable.* from 
(select * from 表名 where 1=1 order by 编号) temptable where rownum <=60) where r_n >= 41

在翻前面的页时就会很快
------解决方案--------------------
1,要保证有“编号”字段上的索引
2,修改成楼上的查询方式
select * from (select rownum r_n,temptable.* from 
(select * from 表名 where 1=1 order by 编号) temptable where rownum <=60) where r_n >= 41