请问SQL服务器缓存查询结果? [重复](Does SQL Server CACHES Quer

2019-08-19 16:45发布

这个问题已经在这里有一个答案:

  • SQL Server缓存问题 5个回答

当我运行一个查询会在SQL Server缓存的结果?

这是因为 :当我运行下面的查询:

SELECT id
FROM Foo
WHERE Foo.Name LIKE '%bar%'

查询为一日时间为40秒运行一次。

但在第二次运行 需要几秒钟

这是因为执行计划以某种方式缓存或实际数据进行缓存,这样我可以在第二次运行速度更快找回?

Answer 1:

SQL Server不缓存查询结果,但它缓存数据页在内存中读取。 从这些页面的数据然后用来产生查询结果。

你可以很容易地看到,如果数据从内存或磁盘设置阅读

SET STATISTICS IO ON

返回的查询执行以下信息

Table 'ProductCostHistory'. Scan count 1, logical reads 5, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

逻辑和物理读取之间的差是从存储器读取的数据。

达到SQL Server还要求将内存缓存,直到最大(配置或物理最大),然后最老的页刷新。



文章来源: Does SQL Server CACHES Query Results? [duplicate]