.net take n行和skip m行实体框架存在问题
我正在从数据库(约130000行)计算数据 由于行的数量很大,我选择了1百万行,计算它们,保存结果,然后再选择1百万行,以此类推 我使用select.net take n行和skip m行实体框架存在问题,.net,entity-framework,entity-framework-4,.net,Entity Framework,Entity Framework 4,我正在从数据库(约130000行)计算数据 由于行的数量很大,我选择了1百万行,计算它们,保存结果,然后再选择1百万行,以此类推 我使用select。。订货人。。跳过m。。。取n…ToList() 因为我想在内存中保存这些对象 当我跳过1百万然后2百万然后3百万。。。然后让我们说6百万,这很好,但突然查询需要很长时间 你也有同样的问题吗 有什么办法可以让它工作得更快吗 谢谢你的帮助, 再见您可以使用Rowcount,但我不知道这在实体框架中是否适用 这样,您可以选择Rowcount()>2 00
。。订货人。。跳过m。。。取n…ToList()
因为我想在内存中保存这些对象
当我跳过1百万然后2百万然后3百万。。。然后让我们说6百万,这很好,但突然查询需要很长时间
你也有同样的问题吗
有什么办法可以让它工作得更快吗
谢谢你的帮助,
再见您可以使用Rowcount,但我不知道这在实体框架中是否适用 这样,您可以选择Rowcount()>2 000 000,然后选择(1 000 000) 或者,如果您有一个ID列,并且正在按顺序进行遍历,请向where for ID>last processed ID添加一个条件
这应该比skip快,如果查看生成的SQL,就会发现问题所在。SQL Server没有本机跳过,因此实体框架会临时解决这一问题
为了有效地执行此操作,您需要使用不同的方法对数据进行分区,该方法可以由服务器使用索引来实现。在不了解更多有关该问题的信息的情况下,我无法说出最好的方法,但可以寻找一种划分数据的方法,这些数据可以在SQL查询中索引。
Skip
已经进行了行计数。这正是问题所在。在这么大的表上,行数很慢。我想创建一个网络,其中顶点是用户,边是连接(如果有人打电话给另一个用户,则边值会增加)。在一行中,我查看UserAId UserBid和一些其他详细信息。我需要处理每一行来填充数据,这是效率的问题