比较两个大型列表C#

时间:2019-09-13 20:37:15

标签: c# database list linq

这是我的ETL项目之一,用于同步两个数据库,有些表是4G,所以ETL作业只是加载要插入或更新的更新数据,效果很好,但是源表会删除一些记录,我想也从我的表中删除。我所做的是:

List<long> SourceIDList; // load all ID from source table
List<long> MyIDList; // load all ID from my table
var NeedRemoveIDList = MyIDList.Except( SourceIDList );
foreach(var ID in NeedRemoveIDList)
   // remove from my table

代码逻辑有效,但是将4G表中的ID加载到List将通过“内存不足”异常,是否有更好的方法?

1 个答案:

答案 0 :(得分:0)

感谢所有注释,我最终在数据库中完成了此操作,我在临时表中插入了两个列表,并使用SQL进行比较,花了一些时间来插入数据,但是由于这是ETL工作,因此需要花几分钟的时间好吧。

相关问题