ITPub博客

首页 > 数据库 > Oracle > 【Oracle】分页 李四

【Oracle】分页 李四

Oracle 作者:6927878 时间:2013-12-18 11:36:18 0 删除 编辑

Oracle分页一般来说有三种方式,各有优劣

用三种方式查询同一结果得出:

1.根据ROWID 这种方式效率最高,但语句感觉相对比较复杂

2.根据分析函数来分页 效率比较低,语句简单

3.按ROWNUM来分 效率一般,语句也不复杂

例1:

   select * from t_xiaoxi where rowid in (select rid from (select rownum rn,rid from (select rowid rid,cid from t_xiaoxi order by cid desc )where rownum <10000)where rn>9980)order by cid desc;

//  执行时间0.03s

 

例2:

  select * from(select t.*,row_nuber() over(order by cid desc) rk from t_xiaoxi t)where rk<10000 and rk>9980;

// 执行时间1.01s

例3:

  select * from(select t.*,rownum m from (select * from t_xiaoxi order by cid desc ) t where rownum <10000)where rn>9980;

//执行时间0.1秒

 

其中t_xiaoxi 是表的名称,cid是表的关键字段,取按CID 降序排列后的第9981-9999条记录,t_xiaoxi 中有70000左右记录

 

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23661482/viewspace-1115695/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-04-05