2012-08-14 85 views
2

我最近在我的项目中添加了精彩的MiniProfiler包,它帮助我提高了页面渲染速度。请解释这种行为(LINQ缓存)?

现在我注意到以下几点。每次对页面的第一次请求在SQL中比在后续访问中花费的时间要长得多。

下面是一个例子:

第一次访问:

First visit

第二次以后的访问:

Second visit

这是造成某种CACH的在LINQ或SQL Server上?我在我的dbml文件中使用.NET 4和LINQ-to-SQL默认设置。

+0

首次加载单个页面,或在启动站点后首次加载任何页面?当应用程序没有预热时,初始加载时间可能会有很大差异 - 冷启动配置文件应与预热配置文件分开处理。请注意,时间差异远大于SQL时间差异,大约为300毫秒,而总差异为1.2秒。 – mellamokb 2012-08-14 15:13:56

+1

SQL Server也有编译查询缓存。 – Hogan 2012-08-14 15:14:06

+0

首次加载任何分页页面。 – jao 2012-08-14 16:47:21

回答

1

有很多事情可以影响第一击的表现。抖动可能不得不做一些工作,并且各种级别的缓存可能会发挥作用。

也就是说,SQL Server具有非常先进的缓存功能。对服务器的重复查询比初始查询要快得多,这并不常见。