最近在学习oracleDBA 看了看书也没有个具体的了解,语句执行的过程在内存中是什么样的呢??

解决方案 »

  1.   

    首先是SQL语句的执行过程 
    1、语法检查(syntax check): 检查此sql的拼写是否语法。2、语义检查(semantic check): 诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。3、对sql语句进行解析(prase): 利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。4、执行sql,返回结果(execute and return)
    然后是对于如果写入磁盘
     Buffer Cache是SGA的一个组件,用来缓存用户最近在数据库中访问过的段数据块的副本。这些副本和它们在磁盘上的对应块是同步的! 如果不同步,就是所谓的脏缓冲区! 从Cache往磁盘上写,我们称之为写盘。管理脏缓冲区的机制叫做Dirty List(脏列表)或Write List(写列表)。这个列表里面跟踪已经insert,update,delete但是还没有写盘的语句。最终的写盘工作由ORACLE后台进程Database Writer(DBW0)完成。关于DBWR进程的触发机制,可以百度或者GOOGLE进行详细了解 
      

  2.   

    最好是能把进入哪个pool和最后出发DBWR写的过程。。
      

  3.   


    SQL Statement Processing
    我也坐等大神解释整个完整过程、