您如何比较数据库中的大量数据?

时间:2010-07-22 11:15:39

标签: c# .net database

例如。 2数据源,您可以插入的1个数据库,另一个不是。 2个数据源包含Person记录,您需要执行以下功能。

  1. 从两个数据源中查找匹配人员
  2. 对这些匹配的人运行业务规则(这可能是为了检查这个人是否已经收到加薪等等)
  3. 标记孤儿并将此人留在数据库中。
  4. 问题的原因是性能并确保使用最佳解决方案。循环通过每个匹配的人可能会很慢,但在代码中执行它肯定是可维护的。

    注意:可能有40k人员可以运行业务规则。

2 个答案:

答案 0 :(得分:0)

我正在开发一个执行非常类似操作的应用程序。我不做的唯一事情是操纵信息(它只是读取数据)。

我所做的是将数据从1个源导入DataSet,然后,当需要与数据库进行比较时,我只需从数据库表中选择唯一标识符与我的值相同的值数据集(您可以在SQL中使用LIKE作为替代),如果找到任何内容,它将从数据库中返回值。

所以我想说我搜索一个ID号码(对每个人来说都应该是唯一的)。如果数据库中有我在我搜索的表中搜索到的ID号,那么我将获得有关我在表单上显示的那个人的信息。如果没有,我可以显示一条错误消息,说明找不到匹配项。

希望这有帮助。

答案 1 :(得分:0)

如果我在SQL Server数据库中执行此操作,我将使用SSIS处理数据并执行所需的更改操作,或者将人员标记为可能在更改之前确认某人的匹配。我这样做的一个原因是,在不同的系统中,名称可能不匹配,使用模糊逻辑进行比较可能是比使用普通旧SQL更好,更准确的方法来查找数学。例如,同一个人可能是一个系统中的John Jones和另一个系统中的Johnny Jones。

它还有助于系统尝试匹配以保存存储来自每个系统的唯一记录标识符的表,以便在进行更改时,它们仍然可以保持匹配。 o当玛丽史密斯与约翰尼琼斯结婚并在一个系统中改为玛丽琼斯时,她的信息仍然可以与玛丽史密斯相提并论。