jason0401 发表于 2018-9-25 09:01:05

oracle原理

  oracle 10g
  查找ORA相关的环境变量
  env|grep ORA
  connection
  sqlplus与2个文件有关系:
  sqlnet.ora
  names.directory_path=(tnsnames,ldap,ezconnect)
  tnsname.
  select语句的执行过程
  一共经历了3个阶段
  1、parse
  2、Execute
  3、Fetch
  第一个阶段
  第一1、在共享池,库高速缓存里面查找sql有吗
  第二2、如果没有,进行语法分析
  如果语法错误,返回客户端
  第三3、分析表、以及字段有没有问题,先分析表,
  如果没权限,或者字段有问题也会返回错误都是服务器进程做的
  第四4、获得对象解析锁,防止修改表结构
  show user
  第五5、优化器产生sql语句的执行计划,装入共享池的库高速缓存区域
  第二个阶段,执行阶段
  数据库高速缓存区,如果有,直接执行,DBbuffer
  不存在的话,读取数据文件,读取到dbbuffer完了,然后执行取数据的过程,fetch的过程
  所有oracle的所有操作都是在内存中执行的,所以说oracle需要大内存的支持.
  update-修改
  分为
  Parse
  Execute
  分析完以后,行级锁
  旧的数据放入undobuffer里面,新数据放入dbbuffer把,还的写入重做日志
  什么时候重做日志写硬盘呢???
  commit的过程
  SCN产生了,写到重做日志里面,
  LGWR写进程把重做日志写入重做日志文件里面去
  commit commale以后,释放实物表锁和行级锁
  oracle采用了快速提交机制,这个时候不知道写没写数据文件?
  SMON做善后的工作

页: [1]
查看完整版本: oracle原理