zoukankan      html  css  js  c++  java
  • SQL执行的原理以及一些常见的关键字

    sql语句在面试里面问道的问题:

    sql的解析的顺序

    1.where里面的条件是从右向左扫描解析

    2.from里面的大表在前,小表在后,解析的顺序是从右向左解析。

    3.left/right/inner join 链接基于hashjoin/loop/merge三种方式构建链接方式(最终翻译成oracle内部的一些函数)。

    4.存储过程的有点就是sql解析完一次之后,以后就可以恭喜,不需要重新构建sql解析过程(执行计划,类似一个翻译的过程),在开发中我们也可以给予绑定变量,减少sql硬解析的开销。

    5.物化视图/分区表

    6.游标就是SQL语句执行过程中的一个内存区域的指针,比如存储过程里面常用的游标,但是游标比较消耗内存,占用资源,开销大。解决的方法可以使用临时表机制。

    ==========================================================================

    rank            一般项目里面很少用,比较高级的语法 partion by 很好用,避免过多的group by

    dense_rank

    over 

    partition by

    order by

    ===

    rowid

    ===

    rownum     常用

    ===

    case when  常用

    ===

    left join        常用(项目开发中大量使用left join 做一些报表查询,比较少使用子查询)

    inner join     常用

    ===

    exist in 用,但是不是很多,子查询使用不多,基本都是join连接

    ===

    存储过程

    临时表   存储过程常用----其实个人感觉存储过程一个就是游标,一个就是临时表存储数据

    ===

    系统视图,部分开发场景要使用---比如开发一个类似于PL/SQL的客户端软件就需要一些系统特殊的视图以及Metedata元数据信息

    ===

    触发器  少用----没办法了就是要触发器

    ===

    自定义一些函数,也就是对oracle里面的函数进行封装成我们自己的函数,方便后期项目的维护

  • 相关阅读:
    fabrci网络调优
    fabric链码容器
    fabric文档查阅
    fabric基础设施管理-(五)移除网络
    fabric源码编译
    fabric网络状态监控
    fabric基础设施管理-(六)配置管理
    Scheme宏基础入门(转载)
    GO语言程序中解决中文日期格式的解析问题
    临别之际
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/3988814.html
Copyright © 2011-2022 走看看