【问题标题】:Please explain this behaviour (is LINQ cached)?请解释这种行为(LINQ 是否缓存)?
【发布时间】:2012-08-14 15:11:45
【问题描述】:

我最近在我的项目中添加了很棒的 MiniProfiler 包,它对提高页面渲染速度有很大帮助。

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

这是一个例子:

第一次访问:

第二次及以后的访问:

这是由 LINQ 或 SQL Server 中的某种缓存引起的吗?我在我的 dbml 文件中使用带有默认设置的 .NET 4 和 LINQ-to-SQL。

【问题讨论】:

  • 首次加载单个页面,还是在您启动网站后首次加载任何页面?当应用程序未预热时,初始加载时间可能会有很大差异 - 冷启动分析应与预热分析分开处理。请注意,时间差异远大于仅 SQL 时间的差异(大约 300 毫秒),而总差异为 1.2 秒。
  • SQL Server 也有编译查询缓存。
  • 首次加载任何已配置的页面。

标签: asp.net-mvc-3 linq linq-to-sql mvc-mini-profiler


【解决方案1】:

有很多因素会影响第一击的表现。抖动可能需要做一些工作,并且不同级别的缓存可能会发挥作用。

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

【讨论】:

    猜你喜欢
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2011-12-22
    • 1970-01-01
    相关资源
    最近更新 更多