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

小型 网站 源码东莞网站建设价位

小型 网站 源码,东莞网站建设价位,wordpress模板 汉化,php网站开发小程序据孔老先生说,茴香豆的茴字有四种写法,那oracle的分页查询又有多少种写法呢?分页查询,其实本质上就是topN查询的变种, 如果把topN的一部分结果集去掉,就变成了分页.topN的基本写法,两层select,第一层先order by,第二层再用rownum:select owner,object_name,object_id,rownum a…     据孔老先生说,茴香豆的茴字有四种写法,那oracle的分页查询又有多少种写法呢?分页查询,其实本质上就是topN查询的变种, 如果把topN的一部分结果集去掉,就变成了分页.topN的基本写法,两层select,第一层先order by,第二层再用rownum:select owner,object_name,object_id,rownum as rn from(select * from t1 where ownerSYS order by object_id desc) where rownum20;有些初级开发人员有时会写成:select owner,object_name,object_id,rownum as rn from t1 where ownerSYS  and rownum20 order by object_id desc;这种写法的逻辑可能存在问题,因为sql解析时会先执行rownum,随机先选出20条记录,再执行排序. 而不是常见业务需要的先排序,再取前20. 如果满足条件的全部结果集20, 那么逻辑也是没问题的.在上面topn的基础上, 再套一层select, 就变成了最常见的标准的三层select的分页查询写法(第一层排序,第二层给rownum取别名,得到topn,第三层去掉topn的前面部分):select owner,object_name,object_id,rn from  (select a.*,rownum as rn from   (select * from t1 where ownerSYS order by object_id desc) a where rownum20  ) where rn10;执行计划中看到COUNT STOPKEY 为最佳(没有sort字样).除了上面比较常见的写法, 还有其他几个不常见的写法:1层select(12c才支持的offset 写法,有时可能需要使用hint来纠正优化器执行计划):select  owner,object_name,object_id,rownum as rnfrom t1where ownerSYSorder by object_id descoffset 10 rows fetch next 10 rows only;执行计划中看到WINDOW NOSORT STOPKEY为最佳2层select,用到了row_number分析函数(可能需要使用hint来纠正优化器执行计划):SELECT * FROM  (SELECT   owner,object_name,object_id,            row_number() over (order by object_id desc) as rn          FROM t1        where ownerSYS)  WHERE RN 20 and RN 10;执行计划中看到WINDOW NOSORT STOPKEY为最佳4层select,对于页数比较大的分页查询,某些情况下可以使用:with tmp as(SELECT * FROM    ( SELECT rid, ROWNUM as RN       FROM           (SELECT rowid as rid             FROM t1             where ownerSYS             order by object_id desc            ) WHERE ROWNUM 500    ) WHERE RN 490) select  /* use_nl(a) leading(b) */ owner,object_name,object_id,rnfrom t1 a,tmp bwhere a.rowidb.rid;下面的3层写法,是比较常见的低效分页写法,在分页前结果集大的情况,性能会比较差, 需要避免使用:select * from(select a.*,rownum as rn  from(select owner,object_name,object_id  from t1  where owner SYS   order by object_id desc)a) where rn10 and rn20;执行计划一般包含  SORT ORDER BY 的步骤.掌握了分页写法,只是优化的第一步,下面我们看一个生产案例,SQL代码如下:这是一个取topn的SQL,先取topn(分页前结果集20万左右),再left join,写法完全没问题,但是执行时间还是比较长,需要24秒:用hint调下执行计划,执行时间变成1秒:hint:  /* monitor leading(p o) push_pred(cosel$2) */如果再创建一个core_userprofile表上orgidUpdateDateid 3字段联合索引, 那么这个SQL的执行时间估计也就是10毫秒以下了. (从24秒到10毫秒,这种性能的提高,靠硬件是无法实现的,现实中确实有很多类似的SQL,可惜的是,我们很多的决策人员, 只相信高级硬件才能解决性能问题,不知道有这些高级优化技巧)总结:    分页查询,写法只是第一步,写法正确的基础上,如果执行计划不佳,我们可以通过oracle优化器提供的hint来调整执行计划(不需要改sql代码); 但是如果sql写法不佳,也是没有办法通过调整索引和执行计划进行优化.     写法和索引,是SQL优化的核心,在此基础上通过hint调整执行计划, 是更高级的技术, 需要更进一步的了解优化器特性,以人脑优化器代替电脑优化器.    想提高SQL优化技能,看完我的线上培训课程(索引专题,SQL写法与改写专题)会大有帮助.
http://www.zqtcl.cn/news/538238/

相关文章:

  • 太原市住房和城乡建设部网站网站 备案 换空间
  • 怎么做网站备份网站运营数据周报表怎么做
  • 度更新网站做详情页网站
  • 酷炫网站模板wordpress自动发货插件
  • 网站做多个镜像wordpress无法显示向导
  • 交易类网站建设费用工厂招工最新招聘信息
  • 俄语网站建设网站建设的实训报告
  • 朝阳市做网站的公司wordpress msg
  • 企业管理系统免费版seo关于网站
  • 几度设计网站设计制作平板电脑支架
  • 游戏设计 网站上海中企动力做网站多少钱
  • flash 开发的网站网上国网app推广经验
  • pyhton可以做网站吗文章wordpress
  • 省住房城乡建设厅门户网站电子商务网站建设用什么软件
  • 怎么给自己的网站做模版企业网站开发外包
  • 哪家可以做网站东莞网站建设少儿托管
  • 最好的网站建设公司排名生物技术网站开发
  • 网站建设经验大总结不良人网页设计怎么做
  • 宁波市余姚建设局网站学做网站要代码
  • 戴尔公司网站开发的经营目标贵州省铜仁市城乡建设局网站
  • 商务网站建设简答题及答案网站备案 域名证书
  • 网站后门怎么去除贾汪城乡建设局网站
  • 烟台住房和城乡建设厅网站重庆网站界面设计
  • 企业网站推广服务协议html编程语言
  • 上海知名网站建设公司合肥建设云平台证书查询
  • 网站响应度西安哪家公司做的网站好
  • 广州市白云区网站建设维护wordpress如何匹配模板
  • 360网站导航公司地址怎么做seo 优化一般包括哪些内容
  • 龙岗高端建设网站建设南京旅游网页设计
  • 企业网站优化问题wordpress滑动