• oracle中sql查询语句的执行顺序


    查询语句的处理过程主要包含3个阶段:编译、执行、提取数据(sql查询语句的处理主要是由用户进程和服务器进程完成的,其他进程辅助配合)

    一、编译parse

            在进行编译时服务器进程会将sql语句的正文放入SGA的共享池的库高速缓存区(library cache)中并将完成一下处理。

          1、首先在共享池中搜索是否有相同的sql语句(正文),如果没有就进行后续的处理。

          2、检查sql语句的语法是否正确

          3、通过查看数据字典来检查表和列的定义是否有效

          4、对所操作的对象加编译锁,以便在编译语句期间这些对象的定义不能被改变。

          5、检查所引用对象的用户权限

          6、生成执行该sql语句所需的优化的执行计划

          7、将sql语句和sql执行计划装入共享的sql区

          以上每一步都是在处理正确时才进行的后续操作,如果不正确就返回错误。

    二、执行execute

         oracle服务器进程开始执行sql语句是因为他已经获得了执行sql语句的所需的全部资源和信息

    三、提取数据fetch

         oracle服务器进程选择所需要的数据行,并在需要时将其排序,最后将结果返回给用户进程。

  • 相关阅读:
    我的算法日志:数据结构之顺序队列与循环队列
    我的算法日志:排序算法之快速排序
    算法:冒泡排序
    算法:桶排序(简易版)
    Android:配置LitePal 3.0
    Android:简单粗暴的二维码生成与扫描
    Linux
    Python
    Linux
    Python
  • 原文地址:https://www.cnblogs.com/moonfans/p/3802372.html
Copyright © 2020-2023  润新知