为了账号安全,请及时绑定邮箱和手机立即绑定

如何针对大型数据集优化比较性能?

如何针对大型数据集优化比较性能?

C#
白板的微信 2021-03-30 12:18:58
我有一个非常慢的方法,我不确定如何优化此方法。我也不太了解LINQ的工作原理,因此,如果解决方案是使用LINQ,请解释一下。非常感谢。该dtExcel方法的参数中的DataTable包含第一部分数据,另一部分_dt来自数据库。通过两个for循环运行的数据大约如下:700(dtExcel)* 10,000(_dt)= 7,000,000个比较。这里的代码:public async Task<DataTable> GetAdressesFromDB(DataTable dtExcel){    try    {        return await Task.Run(() =>        {            CurrentProgress = 0;            ProgressbarDBVisible = true;            _dtFoundDuplicates.Clear();            _dt = new DataTable();            _dt = DBConn.GetAllAddresses(dtExcel);            ProgressMaximum = dtExcel.Rows.Count;            for (int i = 0; i < dtExcel.Rows.Count; i++)            {                CurrentProgress++;                for (int y = 0; y < _dt.Rows.Count; y++)                {                    // Criteria to check duplicates                    string compareAdressExcel = "";                    string compareAdressDB = "";                    // Get the setted filter criteria and create both excel and db compare strings                    string[] criteriaFields = ConfigurationManager.AppSettings["strFilter"].Split(',');                    foreach (String cField in criteriaFields)
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

如果这是sql server,则应该使用ssis。
它具有模糊匹配,这对于匹配来自两个不同来源的地址上的记录几乎是必须的。
我也将使用ssis将数据导入到表中,并对管道中的数据进行任何预处理。
然后可以使用作业来运行整个过程。

查看完整回答
反对 回复 2021-04-17
  • 3 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信