Oracle进阶学习2:SQL语句执行过程

文章目录

      • 一些背景知识
      • 相关知识

一些背景知识

  1. ORACLE数据库启动的时候,Oracle首先在内存中划出一段空间启动一堆进程,进程以及该内存区域统称为Oracle实例
  2. Oracle实例关联的基本内存结构包括:
    系统全局区(SGA)由所有服务器进程和后台进程共享,对于所有进程来说,内存空间共享,实际工作中会有一定区域的分配
    程序全局区(PGA)专用于某一个服务进程或者后台进程,每一个进程使用一个PGA,Oracle新版本,存在一个很大空间的PGA空间,每启动一个进程,会将一定PGA空间分给对应的进程,重点是前台进程和PGA的关系
  3. Oracle数据库三种文件组成
    1. .ctl文件 控制文件
    2. .log文件 日志文件
    3. .dbf 数据文件

相关知识

Oracle进阶学习2:SQL语句执行过程_第1张图片

Server process是实例的进程,主要在SQL处理时执行部分功能
SQL语句的执行过程

  1. 客户端输入SQL语句
  2. SQL语句经过网络到达数据库实例
  3. Server process拿到SQL语句之后进行解析,首先应该是去shared pool查找是否存在对应的语句以及执行计划,如果没有找到,server process自己解析进行下一步去执行解析,解析步骤如下:
    1. SQL process判断语句语法是否正确
    2. 访问的表是否具有访问权限
    3. SQL语句涉及的表以及视图数据库有没有
    4. SQL语句应该如何执行->寻找最优的执行方法,然后生成执行计划
  4. server process根据SQL语句的执行计划去DBF取出数据,放到buffer cache,然后返给用户,在此之前是server process首先寻找的是buffer cache,如果存在则直接在buffer cache取出数据,

你可能感兴趣的:(数据库)