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里面的函数进行封装成我们自己的函数,方便后期项目的维护

  • 相关阅读:
    openfl使用64位的ndk时,编译报错的问题!
    Haxe是何物?
    jsp中如何判断el表达式中的BigDecimal==0
    如何在springmvc的请求过程中获得地址栏的请求
    【原创】【滑块验证码】
    【原创】【aes加密】
    【原创】【qrcodejs2】生成二维码
    【原创】【ueditor】监听内容
    【原创】【ueditor】内容过多时 菜单控件遮挡页面
    js杂谈
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/3988814.html
Copyright © 2011-2022 走看看