不,我的第二个问题的答案不是冬天。
前言:
最近我一直在研究实体框架,并且有一个问题一直困扰着我,那就是当查询没有预热时(所谓的冷查询)它的性能。我阅读了 Entity Framework 5.0 的 性能考虑 文章。作者介绍了温热和冷查询的概念以及它们的区别,而我自己在使用时也注意到了这点。这里可能值得一提的是我只有六个月的经验。
现在我知道要想更好地理解该框架的性能方面,需要进一步研究的主题。不幸的是,互联网上的大部分信息已经过时或充斥着主观性,因此我无法在 "温热" vs. "冷" 查询的主题上找到任何其他信息。
到目前为止,我已经注意到的基本情况是,每当我必须重新编译或运行回收站时,我的初始查询变得非常缓慢。随后的数据读取很快(主观),正如预期的那样。
我们将迁移到 Windows Server 2012、IIS8 和 SQL Server 2012,作为一名初级员工,我实际上赢得了在其他人之前测试它们的机会。我很高兴他们引入了一个预热模块,可以让我的应用程序准备好第一个请求。然而,我不确定如何继续预热我的实体框架。
我已经知道值得做的事情:
- 根据建议提前生成我的视图。
- 最终将我的模型移动到单独的程序集中。
我正在考虑采取常识方法,这可能是错误的方法:
- 在应用程序启动时执行虚拟数据读取,以便预热并生成和验证模型。
问题:
- 在任何时候保持实体框架的高可用性的最佳方法是什么?