[英]Experiencing timeouts while Querying big data using Entityframework 4.1 or higher
使用EF 4.1,我试图查询5万个大数据表。 我为DbContext设置了相对较高的超时:
public class YourContext : DbContext
{
public YourContext()
: base("YourConnectionString")
{
// Get the ObjectContext related to this DbContext
var objectContext = (this as IObjectContextAdapter).ObjectContext;
// Sets the command timeout for all the commands
objectContext.CommandTimeout = 500;
}
}
但是仍然似乎还不够,但是当我使用(10000)时,它可以工作。 我这里没有服务器端分页的选项。 很高兴知道如何摆脱这种超时情况。
是由实现或存储库模式引起的还是EF无法处理大数据?
您在那儿走的路很差...
从数据库加载所有数据是一种不好的做法。
如果您实现了服务器端分页,或者如果您不需要填充,则只需实现按需加载功能会更好。
我认为用户将查看所有这些数据,因此不需要从数据库中获取它。
最好每天多花一些小时,但要正确处理。
正如实践所示,您将收到客户/客户/用户对性能的抱怨,您将不得不正确地重写漏洞。
您最好三思而后行,不要偷懒;)
EF可以处理大数据。
正如您已经知道大多数“连接”所具有的一样,这只是一个配置(您还可以在ADO.net中使用timeOut)。 默认情况下,它设置为30秒,您可以更改它
确定EF在您当前的情况下可以处理的最大数据非常困难。我建议选择延迟加载,但无法完全解决问题。 如果我在您的位置,我可能会尝试使用某些缓存功能,因为分页在您的情况下也不可行。
这些只是我的建议,并非解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.