物理读和逻辑读

  1. 有物理读的地方,一定会有逻辑读;

物理读:将数据从磁盘上的文件写入到buffer cache的过程;
逻辑读:将数据从buffer cache内存读取到PGA给用户的过程

 数据库读写的单位是数据块。当用户最终得到的结果可能只是某个数据块中的几行或几列。
 当一个查询语句被执行时,服务器进程会将相关的数据块从数据文件中写入内存(buffer cache)。这就叫做物理读。每读取一个数据块,即是一次物理读。

 而用户需要的并不是整个数据块,而是其中的几行或几列。从buffer cache中提取行的过程,便是逻辑读。



为了完成一次逻辑读,服务器进程先要在hash表中查找块所在的cache buffer链,找到之后,需要在这个链上加一个cache buffer chains闩,加闩成功之后,就在这个链中寻找指定的块,并在块上加一个pin锁,并释放cache buffer chains闩,然后就可以访问块中的行乐。服务器进程不会将块中所有满足条件的行一次取出,而是跟军你的抓取命令,每次取一定数量的行。这些行取出之后,会经由PGA传给客户端用户。行一旦从buffer cache中取出,会话要释放掉在块上所加的pin。本次逻辑读就算结束。如果还要再抓取块中剩余的行,服务器进程要再次申请获得cache bufffer链闩.再次在块上加PIN.这就算是另外一次逻辑读咯.也就是说,服务器进程每申请一次cache buffer链闩,就是一次逻辑读.而每次逻辑读所读取的行的数量,可以在抓取命令中进行设置。
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值