锁定老帖子 主题:最新+最简单Oracle分页查询法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-14
可能是我以前用个mysql和SQLServer的原因,听起来很容易懂。 别扯远了,回到正题吧。呵呵 我看到Oracle分页的时候,韩老师也说这是最简单最常用的一种。 select * from (select a1.*,rownum rn from(select * from emp) a1 where rownum<=10) where rn>=6; 我感觉非常麻烦,还要3个子查询。 其实大家也知道子查询的效率是非常慢的, 能不用子查询就尽量不要用。 我研究了下,结果感觉比上面那个要简单很多,只需要2个子查询 select * from (select e.*,rownum rn from emp e) a1 where a1.rn between 6 and 10; 两种查找的效果都是一样的。 但是我感觉这样确实不错,简单方便,可读性也更高,新手更容易看懂, 查询效率按道理来说应该是上面那个更快。 如果大家有什么意见和建议都可以跟我交流下。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-15
http://www.iteye.com/topic/9681?page=1
|
|
返回顶楼 | |
发表时间:2009-10-16
myy 写道 http://www.iteye.com/topic/9681?page=1
什么意思 ?? |
|
返回顶楼 | |
发表时间:2009-10-16
一般都是第二种,效率要高些
|
|
返回顶楼 | |
发表时间:2009-10-26
第一种比第二种效率高
在数据量少的情况下 差别不是很大 一旦数据量大的话 第二种分页很废时间 同样100W条数据 第一个方法施行时间是0.125秒 第2个是 3.015秒 另外 告诉lz 下 between and 少用 效率慢 不如用> < |
|
返回顶楼 | |
发表时间:2009-10-26
韩顺平的我也看过,讲的太白话啦,不过说的很不错!
还有内联,外联少用...效率低... |
|
返回顶楼 | |
发表时间:2009-10-27
用第一种啦
你试着去Hibernate那弄出他提交到的oracle时产生的分页语句 就知道了 |
|
返回顶楼 | |
发表时间:2009-10-27
貌似我之前在oracle中,写个分页排序的sql查询了三个集合然后再用集合的操作才搞定。
看来我还没到火候,呵呵。 |
|
返回顶楼 | |
发表时间:2009-10-28
最后修改:2009-10-28
select * from (select e.*,rownum rn from (select * from emp) e) a1 where a1.rn > 6 and a1.rn < 10;
觉得这样写比较好
这样select * from emp 就可以独立出来 不依赖于sql 语句 不用每个都带rownum
也好维护
|
|
返回顶楼 | |
发表时间:2009-10-28
coolbaby1984514 写道 第一种比第二种效率高
在数据量少的情况下 差别不是很大 一旦数据量大的话 第二种分页很废时间 同样100W条数据 第一个方法施行时间是0.125秒 第2个是 3.015秒 另外 告诉lz 下 between and 少用 效率慢 不如用> < 非常正确 |
|
返回顶楼 | |