在MSSQL中使用
- SET STATISTICS IO ON
打开IO统计功能之后,每次执行完一个查询就会在下面的【消息】面板中显示本次查询IO的统计信息。
- (0 行受影响)
- 表 'demo'。扫描计数 1,逻辑读取 622 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
- (1 行受影响)
会出现上面的信息,利用这些信息可以帮助我们优化查询语句。
今天看了一些这方面的内容,说一下我理解的“逻辑读”“物理读”“预读”这三个概念。
预读:
一次查询的大体过程是这样的,首先生成执行计划,同时异步的根据预估的执行计划从磁盘读取数据(预读),最多允许读取64页数据页和索引页,64K=64*8Byte=512字节。
逻辑读:
生成查询计划之后,从SQLSERVER的缓存中按计划读取数据(逻辑读)。
物理读:
如果发现没有数据,从磁盘读取数据(物理读)拷贝到缓存中。
后记:
如有问题,还请大家指出!
本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/806871,如需转载请自行联系原作者