zoukankan      html  css  js  c++  java
  • oracle优化

    1、rownum关键字

    1)rownum是一个伪列,需要在数据取出来后,rownum才会有值,因此在分页查找时,需要进行嵌套查询。

    select sal,ename from
     (select rownum as rn,sal,ename from    
       (select sal,ename from emp where sal is not null order by sal) x
     where rownum<10)
    where rn>6

    2)rownum和orderby不要同时再一个查询里,因为oracle会先给伪劣赋值,然后再排序

    2、rownum和rowid的区别

    Rownum 是逻辑地址。表示查询某条记录在整个结果集中的位置,同一条记录查询条件不同对应的rownum是不同的而 rowid是不会变的。
    Rowid是物理地址。用于定位数据表中某条数据的位置,是唯一的、不会改变,查询速度快。

    3、选择最有效率的表名顺序(只在基于规则的优化器中有效)。
    ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询,那就需要选择交叉表(intersection table)作为基础表,交叉表是指那个被其他表所引用的表。

    4、如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表。

    5、 Where子句中的连接顺序Oracle采用自下而上自右向左的顺序解析WHERE子句。根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾

  • 相关阅读:
    angular4-http
    angular4-表单
    angular4-事件绑定
    angular4-常用指令
    angular4-自定义组件
    sea.js与require.js的区别
    OC面向对象下之协议
    OC基本程序和面向对象
    OC面对对象下之类别
    Foudation框架之字典
  • 原文地址:https://www.cnblogs.com/wenwenzuiniucha/p/14886208.html
Copyright © 2011-2022 走看看