我希望将许多文件导入数据库(使用自定义业务逻辑阻止使用简单的SSIS包)。
问题的高级描述:
我的方法有问题: 必须检查每一行的重复项,我认为调用远程服务器来利用SQL会太慢,所以我选择了LINQ。查询很简单,但数据集的大小会导致它爬行(在此查询中花费90%的执行时间来检查字段)。
var existingRows = from row in recordDataTable.AsEnumerable()
where row.Field<int>("Entry") == entry
&& row.Field<string>("Device") == dev
select row;
bool update = existingRows.Count() > 0;
还有哪些其他方法可以更有效地检查重复项?
答案 0 :(得分:1)
使用linq,每次检查重复时,它基本上会对~1M记录进行for循环。
最好将数据放入字典中,以便查找内存索引。