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