`
1enny
  • 浏览: 70604 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ORACLE体系结构的概序

 
阅读更多
oracle009

ORACLE体系结构的概序
注意:oracle软件和系统是建立在服务器上,oracle数据库时建立在存储上

服务器进程就是前台进程,为每个访问的链接提供一个前台进程SERVER PROCESS


一条查询sql语句的执行过程
1. 客户端输入sql ,通过链接送到了server process(实例的进程)
2.进入share pool查询是否有相同的sql语句,假如有相同的语句那么就获取执行计划执行,假如没有就执行 3
3. server process 解析sql语句(语法、是否有权限访问、表是否存在、语句该选择执行方案等)--》生成执行计划
把执行计划、sql语句存入到share pool中
4. server process首先从buffer cache中查找执行计划对应的数据,假如存在直接返回数据给用户,假如没有执行5
5. serverprocess 根据执行计划从dbf中取出数据存入到buffer cache(缓冲数据)中,再返回数据

L I/O :逻辑IO 从内存读取
P I/O : 物理IO 从磁盘中读取

L/ L + P : 命中率
命中率低肯定有问题,而命中率高不代表没有问题;假如逻辑读非常大就会掩饰物理读
查看IO情况:
vmstat 1 10
iostat 1 10


一条修改sql语句的执行过程

前面一样:把表存入到buffer cache中

server process 对表进行修改,产生日志卸载redo log buffer中不负责写到库中

数据的写回和日志的写回:
DBWR进程:写回数据
LGWR进程:写回日志

为什么server process不写,而只用来读,修改内存数据?

因为server process始终和用户打交道,假如server Pro慢了用户体验变差了
所以让server Pro做最有意义的事情;对于数据的存入数据库等操作和用户无关,就让后台进程去做
由于server Pro的速度直接影响到了用户体验所以在以后我们最关注的就是server pro



















分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics