加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 中的逻辑读与物理读

发布时间:2020-12-12 09:04:35 所属栏目:MsSql教程 来源:网络整理
导读:首先要理解逻辑读和物理读: 示例: ????? SQL SERVER一页的总大小为:8K ????? 但是这一页存储的数据会是:8K=8192字节-96字节(页头)-36字节(行偏移)=8060字节 ????? 所以每一页用于存储的实际大小为8060字节. ????? 我们可以通过公式大概推算出占用了多少页

首先要理解逻辑读和物理读:

示例:

????? SQL SERVER一页的总大小为:8K

????? 但是这一页存储的数据会是:8K=8192字节-96字节(页头)-36字节(行偏移)=8060字节

????? 所以每一页用于存储的实际大小为8060字节.

????? 我们可以通过公式大概推算出占用了多少页:2032*1024/8060(每页的数据容量)≈258- 表中非数据占用的空间≈290(上图中的逻辑读取数)

?????

查询计划生成好了以后去缓存读取数据,当发现缓存缺少所需要的数据后让缓存再次去读硬盘(物理读),然后从缓存中取出所有数据(逻辑读)。

?????Storage engine notices pattern and kicks off read ahead,which starts to read data not yet requested into buffer pool. These are counted as read ahead reads,but not as logical or physical reads.Next time the scan or seek needs data,it is already in the buffer pool,so only logical io,no physical io.

参考:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读