Ton*_*ich 5 sql-server sql-server-2005
我重新启动了 SQL Server 2005 并运行了一个带有统计 IO 的查询。
我得到了这些结果:表'xxx'。扫描计数 1,逻辑读取 789,物理读取 3,预读读取 794,...
预读读取是读取并放置在缓存中的页数。那么物理读数不应该至少是相同的数字吗?
也因为它是查询的第一次运行,逻辑读取不应该是 0 吗?还是 SQL Server 物理读取页面,将它们放入缓存,然后从缓存中读取?当缓存应该为空时,为什么要对逻辑读取进行计数?
所有读取都是逻辑读取。
除了将页面放入高速缓存之外,有些还会引发物理读取和预读读取。
据推测,它会提前读取查询实际上从未需要的几页,因此该数字略大于实际的逻辑读取。