实体框架第一次加载速度很慢

时间:2012-08-16 22:10:46

标签: asp.net sql-server entity-framework entity-framework-4

我在我的网站上使用EF 4并且发现了一个非常令人不安的问题 - 第一次运行加载时间非常慢。 (约20-30秒)。 第一次运行后 - 它将非常快速地运行。

“第一次运行”的意思是经过一段时间没有活动(大约10分钟左右)后的运行。

因此,如果有大量流量,该网站工作正常。如果有缓慢的日子 - 第一个在长时间交通休息后来到网站的日子,将会有非常糟糕的体验。

因为网站也暴露了API - 在那里也会发生同样的情况。第一个打电话给他 - 他会在他身边超时。

我的数据库是SQL Server 2008 R2。

为什么会发生这种情况?如何解决?

谢谢!

3 个答案:

答案 0 :(得分:3)

可能是EF,但同样可能是您的应用程序池在IIS或其组合上被回收。

如果您网站上的使用时间较慢,并且您希望每个页面都能快速加载发生的访问者,那么过去我会设置一个定时作业,以特定的时间间隔访问我的网站(约5分钟为我工作),这确保了当访客出现时它总是准备好。

如果您有权访问任务计划程序,则非常容易。

答案 1 :(得分:0)

我会做更多的研究,以确定它是EF,DB或IIS。我认为IIS看起来可能是罪魁祸首,就像@ E.J.布伦南说。

在IIS中,我确保IIS应用程序池没有回收,而正常情况下可以管理频率,以减少对最终用户的影响。 EF可能不是问题,但应用程序或数据库中的缓存可能会隐藏基础SQL问题。捕获查询并分析执行计划以确保其最佳。

希望这有助于查明问题。

答案 2 :(得分:0)

我也遇到了这个问题,我发现它与我的数据库中的大量视图有关。

Performance Considerations (Entity Framework)确实有所帮助,steps for mitigating the impact of generating views将45-60秒的初始负载降低到3-4秒。