EF6对部署的首次查询速度较慢

时间:2019-07-06 01:53:14

标签: c# asp.net entity-framework

了解到实体框架在冷查询(模型编译后的第一个查询)上运行缓慢,因此我正在围绕方法进行一些标准的工作以加快速度。主要是预编译的视图,以及在应用程序加载后立即在客户端发出虚拟http请求以触发查询以启动模型过程。

我在这里的问题是专门针对部署的应用程序如何工作。例如,如果我将其部署在Azure上,是对 entire应用程序的第一个冷查询将触发模型编译,还是对每个个人用户进行此缓慢的冷查询使用该应用程序?简单来说,是一次还是只有一次,或者用户每次访问该网站进行新会话时,都会发生这种情况?

1 个答案:

答案 0 :(得分:1)

从进入数据库服务器的Web服务器的第一个请求开始触发EF慢启动。

需要注意的几点,

  • 如果部署到Azure Web应用程序,请确保已启用“ AlwaysOn”应用程序设置。如果没有,则在给定的时间段后,Web应用将被暂停,下一个请求将触发另一个冷启动。
  • 类似地,如果您使用IIS部署到VM,则需要检查应用程序回收设置。
  • 当您部署新版本的应用程序代码时,将需要重新启动该过程,这将导致另一个缓慢的启动。

缓解这种缓慢启动的好方法是在向其发送实际用户流量之前使用部署插槽和预热插槽。使用Azure Web App部署插槽可以轻松实现这一点。