【问题标题】:Entity Framework: PreWarm Execution Plans Caching实体框架:PreWarm 执行计划缓存
【发布时间】:2013-09-05 16:55:00
【问题描述】:

我有一个由 LINQ To Entities 生成的复杂 SQL 查询。

  • SQL Server中没有缓存执行计划需要8s。
  • 执行计划缓存到 SQL Server 需要 2s。

在 EF 或 SQL Server 中有一种方法可以预热执行计划缓存吗?

谢谢

【问题讨论】:

  • 您确定时差确实与数据库服务器端的执行计划缓存有关,而不是与 EF(客户端)中的查询计划缓存甚至与 EF 元数据视图生成有关吗?这是三件完全不同的事情。

标签: sql-server linq entity-framework caching


【解决方案1】:

没有。

您遇到性能问题,并通过测量和调查瓶颈将其作为性能问题加以解决。遵循出色的Waits and Queues 方法。阅读Understanding how SQL Server executes a query,了解查询执行时会发生什么。

你需要隔离一些问题:

  • 如您所说,它是冷计划缓存还是冷数据缓存(更有可能)?
  • 如果是冷计划缓存,编译真的会持续 6 秒吗?我不买这个。
  • 如果是冷数据缓存,为什么您的查询会发出 6 秒的 IO?
  • 即使使用热缓存,您的查询也会消耗 2 秒的执行时间。为什么?它是否端到端扫描表?您是否缺少索引或更多? (提示:是的,你知道)。

阅读等待和排队论文将教您如何回答这些问题。

解决原因,而不是症状。

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 2015-09-19
    • 1970-01-01
    • 2012-12-13
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2018-10-29
    相关资源
    最近更新 更多