Asp.net 实体框架首次加载速度非常慢
我在我的网站上使用EF4,发现了一个非常令人不安的问题-第一次运行加载时间非常慢。(大约20-30秒)。 第一次运行后,它将运行得非常快 我所说的“第一次跑步”是指长时间不活动(10分钟左右)后的跑步 因此,如果有大量的流量,该网站是正常工作。如果有慢日——长时间的交通中断后第一个来到现场的人,将获得非常糟糕的体验 因为该网站还公开了一个API——同样的情况也发生在那里。第一个打电话的人会得到一个暂停时间 我的数据库是SQL Server 2008 R2 知道为什么会这样吗?如何解决Asp.net 实体框架首次加载速度非常慢,asp.net,sql-server,entity-framework,entity-framework-4,Asp.net,Sql Server,Entity Framework,Entity Framework 4,我在我的网站上使用EF4,发现了一个非常令人不安的问题-第一次运行加载时间非常慢。(大约20-30秒)。 第一次运行后,它将运行得非常快 我所说的“第一次跑步”是指长时间不活动(10分钟左右)后的跑步 因此,如果有大量的流量,该网站是正常工作。如果有慢日——长时间的交通中断后第一个来到现场的人,将获得非常糟糕的体验 因为该网站还公开了一个API——同样的情况也发生在那里。第一个打电话的人会得到一个暂停时间 我的数据库是SQL Server 2008 R2 知道为什么会这样吗?如何解决 谢谢 可能
谢谢 可能是EF,但也可能是您的应用程序池在IIS或其组合上被回收 如果你的网站使用缓慢,并且你希望每个页面都能为访问者快速加载,那么在过去,我已经设置了一个定时作业,以特定的时间间隔访问我的网站(对我来说大约5分钟有效),这确保了当访问者出现时,它总是准备就绪
如果您有权访问任务调度程序,那么很容易做到。我会做更多的研究,以确定它是EF、DB或IIS。正如@E.J.Brennan所说,我认为IIS似乎是罪魁祸首 在IIS中,我会确保IIS应用程序池没有被回收,虽然这是正常的,但可以管理频率以减少对最终用户的影响。EF可能不是问题所在,但应用程序或数据库中的缓存可能隐藏潜在的SQL问题。捕获查询并分析执行计划,以确保它是最优的
希望这有助于找出问题所在。我也遇到了这个问题,我发现这与数据库中的大量视图有关
这真的很有帮助,将45-60秒的初始负载降低到3-4秒。这是一个已知的行为:另外两个参考:以及,使用任务调度器:)似乎解决了这个问题。关于ORM系统延迟启动问题的很多信息,因此,必须创造性地修复它:)在IIS7.5及以上版本中,有一些更简单的解决方案。