当前位置: 首页 > news >正文

网站建设有什么系统销售课程培训视频教程

网站建设有什么系统,销售课程培训视频教程,做网站前景,购物最便宜的平台Oracle如何实现分页查询 Oracle采用ROWNUM实现分页格式1格式2 Oracle采用ROWID实现分页格式1 参考链接 Oracle采用ROWNUM实现分页 格式1 sql脚本 -- 格式1(推荐)SELECT * FROM ( SELECT temp.*, ROWNUM rn FROM (SELECT * FROM 表名 WHERE 条件 ORDER BY ROWID) temp WH…

Oracle如何实现分页查询

  • Oracle采用ROWNUM实现分页
    • 格式1
    • 格式2
  • Oracle采用ROWID实现分页
    • 格式1
  • 参考链接

Oracle采用ROWNUM实现分页

格式1

  • sql脚本

    -- 格式1(推荐)SELECT * FROM   (  SELECT temp.*, ROWNUM rn   FROM (SELECT * FROM 表名 WHERE 条件 ORDER BY ROWID) temp  WHERE ROWNUM <= end (page*pagesize)  )  WHERE rn > start (page-1)*pagesize
  • 案例

    -- 查询员工信息的6-10条数据 第二页数据select rownum,t.* from (select rownum r,e.* from emp e where rownum <=10) t where r>5;-- 分页查询员工信息按照工资排序select * from (select rownum r,t.* from (select * from emp  order by sal) t where rownum<=10 ) where r>5
  • 分析

    从效率上看,上面的SQL语句在大多数情况拥有较高的效率,主要体现在WHERE ROWNUM <= end这句上,这样就控制了查询过程中的最大记录数,而在查询的最外层控制最小值

    但最大值意味着如果查到了很大的范围(如百万级别的数据),查询就会从很大范围内往里减少,效率就会很低,因此,当面对大数据量时或者优化查询效率时,可以考虑使用ROWNUM结合ROWID,见末尾

格式2

  • sql脚本

    -- 格式2SELECT *FROM (SELECT tt.*, ROWNUM AS rownoFROM (  SELECT *FROM k_task tWHERE flight_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')AND TO_DATE ('20060531', 'yyyymmdd')ORDER BY fact_up_time, flight_no ) tt) table_aliasWHERE table_alias.rowno BETWEEN 10 AND 20;
  • 分析

    第一个查询的效率比第二个高得多。

    这是由于CBO优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率

    对于格式1,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。

    对于格式2,由于查询条件BETWEEN 21 AND 40是存在于查询的第三层,而Oracle无法将第三层的查询条件推到最内层(即使推到最内层也没有意义,因为最内层查询不知道RN代表什么)。因此,对于格式2,Oracle最内层返回给中间层的是所有满足条件的数据,而中间层返回给最外层的也是所有数据。数据的过滤在最外层完成,显然这个效率要比第一个查询低得多。

    上面分析的查询不仅仅是针对单表的简单查询,对于最内层查询是复杂的多表联合查询或最内层查询包含排序的情况一样有效

Oracle采用ROWID实现分页

格式1

  • sql脚本

    -- 格式1SELECT *FROM (SELECT RIDFROM (SELECT R.RID, ROWNUM RNFROM (SELECT ROWID RIDFROM TABLE1WHERE TABLE1_ID = XXORDER BY order_date DESC) RWHERE ROWNUM <= 20)WHERE RN >= 10) T1,TABLE1 T2WHERE T1.RID = T2.ROWID;
  • 分析

    首先通过ROWNUM查询到分页之后的10条实际返回记录的ROWID,最后通过ROWID将最终返回字段值查询出来并返回

    以上共有4层Select嵌套查询,最内层为可替换的不分页原始SQL语句,但是他查询的字段只有ROWID,而没有任何待查询的实际表字段,具体查询实际字段值是在最外层实现的

参考链接

https://blog.csdn.net/use_admin/article/details/83622414
https://blog.csdn.net/death05/article/details/78744250
http://www.shuangfujiaoyu.com/news/36284.html

相关文章:

  • 旅游网站怎么做杭州网站推广找哪家
  • 网站怎么建设宁波微信推广平台哪个好
  • 备案期间的网站打开广告软文代理平台
  • 长安公司网站建设百度影音在线电影
  • 个人如何做公益网站抖音企业推广
  • 简单广告设计软件关键词优化平台有哪些
  • 乌鲁木齐网站建设网络营销模式有哪几种
  • 做网站有什么用福州今日头条新闻
  • 创建一个个人网站需要多少钱热搜榜排名今日
  • 宜宾百度网站建设宁波网站建设与维护
  • 做网站时 404网页如何指向北京网站seo招聘
  • 外网网站有什么好的推荐seo搜索优化待遇
  • 做动态网站费用建网站怎么建
  • 做网站建设需要会哪些淘宝标题优化工具推荐
  • 凤岗仿做网站北京seo优化诊断
  • 竞价托管如何托管seo技术培训东莞
  • 济南建设网站国外网页模板
  • 做购物网站需要什么资质百度免费广告发布平台
  • 大德通网站建设网站长尾关键词排名软件
  • php做网站都需要学什么湖南企业竞价优化首选
  • 微信公众号关联网站搜索引擎网站大全
  • 电子商务网站建设论文总结北京网站seo招聘
  • wordpress换了固定链接404衡水seo排名
  • 开源自动化运维平台seo免费培训教程
  • 做交通事故的网站网站是如何建立的
  • 某网站自己做中性笔整站排名优化品牌
  • 做美食如何加入团购网站推广游戏赚钱的平台
  • 网站开发工程师制作kpi营销技巧和营销方法心得
  • 个人可以建新闻网站吗百度推广外包
  • 建设工程学部研究生培养网站免费网站模板