Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 实体框架首次加载速度非常慢_Asp.net_Sql Server_Entity Framework_Entity Framework 4 - Fatal编程技术网

Asp.net 实体框架首次加载速度非常慢

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 知道为什么会这样吗?如何解决 谢谢 可能

我在我的网站上使用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及以上版本中,有一些更简单的解决方案。