oracle语句执行过程

shared pool:是缓存sql语句以及sql语句对应的执行计划

server process(前端进程):找shared pool中是否已经缓存了sql语句和执行计划,

如果没有,则解析执行计划并放入shared pool中,如果有,则执行使用shared pool中缓存

的执行计划,减少了解析sql语句所花费的CUP和IO。

 

bufffer cache:就是缓存的dbf的数据

 

读取一条sql:客户发送请求,服务器创建数据库连接(连接池分配一条),server process

oracle即前端进程会处理这条连接发过来的sql语句,先到buffer cache中查找sql语句,有

执行使用buffer cache中的执行计划和sql语句,没有则从dbf中去读(消耗CUP、IO),先

读到buffer cache中,再从内存中返回给前端进程返回用户。

 

缓存命中,命中率低肯定有问题,但是命中率高不一定没有问题,如物理IO一万条,逻辑IO十万条,

虽然命中率高,但是物理IO也是一万次,非常影响性能。

 

写一条sql:也是先写到buffer cache,然后由DBWR进程写到DBF。

BUFFER CACHE中有-已连接区(PING区)、空闲或未使用区、干净区、脏区

已连接区:server process连接buffer cache的一瞬间,该区域就是已连接区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值