论坛首页 入门技术论坛

最新+最简单Oracle分页查询法

浏览 7198 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-14  
这两天在学习Oracle数据,下载了韩顺平的玩转ORACLE视频,感觉讲的还不错,
可能是我以前用个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;
  


   两种查找的效果都是一样的。

   但是我感觉这样确实不错,简单方便,可读性也更高,新手更容易看懂,
   查询效率按道理来说应该是上面那个更快。
    如果大家有什么意见和建议都可以跟我交流下。
   发表时间:2009-10-15  
http://www.iteye.com/topic/9681?page=1
1 请登录后投票
   发表时间:2009-10-16  
myy 写道
http://www.iteye.com/topic/9681?page=1

什么意思 ??
1 请登录后投票
   发表时间:2009-10-16  
一般都是第二种,效率要高些
1 请登录后投票
   发表时间:2009-10-26  
第一种比第二种效率高
在数据量少的情况下  差别不是很大
一旦数据量大的话  第二种分页很废时间
同样100W条数据 第一个方法施行时间是0.125秒
第2个是 3.015秒
另外 告诉lz 下 between and 少用  效率慢 不如用> <
1 请登录后投票
   发表时间:2009-10-26  
韩顺平的我也看过,讲的太白话啦,不过说的很不错!

还有内联,外联少用...效率低...
1 请登录后投票
   发表时间:2009-10-27  
用第一种啦
你试着去Hibernate那弄出他提交到的oracle时产生的分页语句
就知道了
1 请登录后投票
   发表时间:2009-10-27  
貌似我之前在oracle中,写个分页排序的sql查询了三个集合然后再用集合的操作才搞定。
看来我还没到火候,呵呵。
1 请登录后投票
   发表时间: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 

 

也好维护

 

1 请登录后投票
   发表时间:2009-10-28  
coolbaby1984514 写道
第一种比第二种效率高
在数据量少的情况下  差别不是很大
一旦数据量大的话  第二种分页很废时间
同样100W条数据 第一个方法施行时间是0.125秒
第2个是 3.015秒
另外 告诉lz 下 between and 少用  效率慢 不如用> <

  非常正确
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics