我有一个表里有超过500万的数据,我现在用分页查询语句查询时如果不排序速度很快,如果加上排序后速度慢的惊人,请各位帮帮小弟.用什么方法解决都行.我的分页查询语句如下:
select * from (select rownum id,loginfos.* from (select * from 表名order by f_time_log desc)loginfos where rownum <=20 ) where id >=10
select * from (select rownum id,loginfos.* from (select * from 表名order by f_time_log desc)loginfos where rownum <=20 ) where id >=10
解决方案 »
- oracle 动态拼接语句并返回查询结果集
- oracle执行计划分析问题,,在线等!!!!着急
- ora_12514
- 关于sqlloader导入多表的问题
- 请教一个在修改记录时出现的关于表空间的错误怎么解决?
- 问一个菜的查询问题。谢谢大虾们帮忙
- oracle 8i,让赛扬也疯狂!!!Help me, Please!
- 请教,如何获得一个表创建时的sql语句??
- 请问:oracle里有没有矩阵装置的函数,我需要实现一个交叉报表,也就是行与列的转换
- 推荐个oracle快速创建索引的工具
- 求在9i的存储过程中二维数组的完整例子及说明,在线等.table ,varrry ,recor都行.
- oracle中使用视图的好处
(SELECT rid FROM
(SELECT T1.rowid rid, rownum as linenum FROM
(SELECT a.rowid FROM 表名 a order by f_time_log desc) T1
WHERE rownum < 20
) WHERE linenum >= 10
) order by f_time_log desc;
首先谢谢你!
你这句语句我试过了,大约需要40秒左右的时间,有没有更快一点的方法?
from TABLENAME
where rowid in (select rid from (select rownum rno, rid
from (select rowid rid from TABLENAME
order by f_time_log desc)
where rownum <= 800000 )
where rno >= 799981)
order by f_time_log desc;
你的想法根本行不通啊,你总不能让我把500多万的数据都读到内存中然后排序吧?
to bobfang(匆匆过客)
/*+ first_row */*是什么意思呢?我没太明白!请解释!