服务于区块链开拓者

www.zhidnet.com

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

查询语句的处理过程主要包含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服务器进程选择所需要的数据行,并在需要时将其排序,最后将结果返回给用户进程。

posted on 2014-06-22 11:46  知点网  阅读(932)  评论(0编辑  收藏  举报