不,我第二个问题的答案不是冬天。
前言:
我最近一直在对 Entity Framework 进行大量研究,一直困扰我的是它在查询未预热时的性能,即所谓的冷查询。
我浏览了 Entity Framework 5.0 的性能注意事项文章。作者介绍了暖查询和冷查询的概念以及它们之间的区别,我自己也注意到了这一点,但并不知道它们的存在。在这里可能值得一提的是,我背后只有六个月的经验。
现在我知道如果我想在性能方面更好地理解框架,我还可以研究哪些主题。不幸的是,Internet 上的大多数信息都已过时或带有主观性,因此我无法找到有关暖与冷查询主题的任何其他信息。
到目前为止,我基本上注意到的是,每当我必须重新编译或回收命中时,我的初始查询都会变得非常慢。正如预期的那样,任何后续数据读取都很快(主观)。
我们将迁移到 Windows Server 2012、IIS8 和 SQL Server 2012,作为一名初级学生,我实际上为自己赢得了在其他人之前测试它们的机会。我很高兴他们引入了一个预热模块,可以让我的应用程序为第一个请求做好准备。但是,我不确定如何继续预热我的实体框架。
我已经知道值得做的事情:
- 按照建议提前生成我的意见。
- 最终将我的模型移动到一个单独的组件中。
通过常识,我考虑做的事情可能是错误的方法:
- 在应用程序启动时读取虚拟数据以预热、生成和验证模型。
问题:
- 在任何时候在我的实体框架上获得高可用性的最佳方法是什么?
- 在什么情况下实体框架会再次“变冷”?(重新编译、回收、IIS重启等)