SQLSERVER预读逻辑读物理读

Posted dgdyq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLSERVER预读逻辑读物理读相关的知识,希望对你有一定的参考价值。

  1.   预读:用估计信息,去硬盘读取数据到缓存。预读100次,也就是估计将要从硬盘中读取了100页数据到缓存。
  2.   物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘。物理读10页,从硬盘中读取10页数据到缓存。
  3.   逻辑读:从缓存中取出所有数据。逻辑读100次,也就是从缓存里取到100页数据。
  4.      lob逻辑读:从缓存读取的text,ntext,image或大值类型(varchar(max),nvarchar(max),varbinary(max))的页的数目

 

SQL Server存储的最小单位是页,每一页大小为8K,SQL Server对于页的读取是原子性的,要么读完一页,要么完全不读。即使是仅仅要获得一条数据,也要读完一页。而页之间的数据组织结构为B树结构。

所以SQL Server对于逻辑读、预读、物理读的单位是页。

 

基本上,逻辑读、物理读、预读都等于是扫描了多少个页。

 技术图片

 

当遇到一个查询语句时,SQL SERVER会走第一步,分别为生成执行计划(占用CPU和内存资源),同步的用估计的数据去磁盘中取得需要取的数据(占用IO资源,这就是预读),

注意,两个第一步是并行的,SQL SERVER通过这种方式来提高查询性能.

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

      最后从缓存中取出所有数据(逻辑读)。

 

以上是关于SQLSERVER预读逻辑读物理读的主要内容,如果未能解决你的问题,请参考以下文章

初谈SQL Server逻辑读物理读预读

[SQL] 理解SQL SERVER中的逻辑读,预读和物理读

物理读,逻辑读,预读

ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

SQL server中的物理排序和逻辑排序是怎么回事