• Oracle 体系结构---SQL语句执行步骤


     

     SQL语句执行步骤

    如果用户在SQL*Plus下输入查询语句:

    SELECT * FROM dept;

    如果一条查询语句执行成功,就要返回查询结果,假如执行失败,将返回错误信息。

    查询语句的处理主要包括三个阶段:编译(parse)、执行(execute)、和提取数据(fetch)。

     

    SQL> select * from dept;
    
        DEPTNO DNAME	  LOC
    ---------- -------------- -------------
    	10 ACCOUNTING	  NEW YORK
    	20 RESEARCH	  DALLAS
    	30 SALES	  CHICAGO
    	40 OPERATIONS	  BOSTON
    

    编译阶段:在执行编译时,服务器将会将SQL语句的正文放入共享池(shared pool)的库高速缓存(library cache)中,并将完成以下处理。

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

    •检查该SQL语句的语法是否正确。

    •通过查看数据字典来检查表和列的定义。

    •对所有操作的对象加编译锁(parse locks),以便在编译语句期间对这些对象的定义不能改变。

    •检查所引用对象的用户权限。

    •生成执行该SQL语句所需的优化执行步骤。

    •将SQL语句和执行计划装入共享的SQL区。

          以上的每一步操作都必须正确。如果不正确,数据库将返回错误信息。

    •执行阶段:Oracle服务器进程开始执行SQL语句,因为它已获得了执行SQL语句所需的全部资源和信息。

    •提取数据:Oracle服务器进程选择所需的数据行,并在需要时将其排序,最后将执行结果返回给用户(进程)。

  • 相关阅读:
    codeforces 1251 F. Red-White Fence
    NTT 模板
    快速傅里叶变换模板
    codeforces 1251E (贪心)
    平衡树
    lucas定理
    P3709 大爷的字符串题 (莫队)
    洛谷 P3258 [JLOI2014]松鼠的新家 (树链剖分或树上差分)
    算法-图(5)深度优先遍历图
    计算机网络-链路层(3)交换局域网
  • 原文地址:https://www.cnblogs.com/wqswjx/p/5489505.html
Copyright © 2020-2023  润新知