2010-07-22 95 views
0

例如。 2数据源,您允许干涉的数据库1,其他不是。 2个数据源包含人员记录,您需要执行以下功能。如何比较数据库中的大量数据?

  1. 查找两个数据源相匹配的人对这些匹配的人
  2. 运行的业务规则(这可能是检查的人是否已经获得增加工资等
  3. 马克孤儿的人,坚持的人到数据库。

的原因的问题是性能,并确保最佳的解决方案是使用。通过每一个匹配的人可能是缓慢的循环,但在代码中这样做是绝对维护。

注意:可能有4万人在运行业务规则。

+0

在Oracle和SQL Server上,您都可以引用外部数据库服务器,并使用它的表,就好像它是自己的(有限制) - 也就是说,如果他们为您提供访问权限。您可以在数据库级别和应用程序级别混淆数据,这只是关于常规业务逻辑。如果没有直接访问权限,则必须处理所有数据。 如果两个数据库不相同(例如,您已将数据从D1更新为D2),则使用D1的更改日期仅查询已更改的记录(如果它们有一个)。 – 2010-07-22 11:27:00

回答

0

我正在处理执行非常类似操作的应用程序。我唯一不能做的就是操纵信息(它只是读取数据)。我所做的就是将1个数据源中的数据导入到DataSet中,然后,当需要与数据库进行比较时,我只需从数据库表中选择唯一标识符与数据库中相同的值我的数据集(可以使用SQL中的LIKE作为替代),如果发现任何内容,它将从数据库返回值。

因此,让我说我搜索一个身份证号码(这应该是每个人都是唯一的)。如果数据库中有我在搜索的表格中搜索到的ID号码,那么我将获得有关该人员在我的表格上显示的信息。如果没有,我可以显示一条错误消息,说没有找到匹配。

希望这会有所帮助。

0

如果我在SQL Server数据库中这样做,我会使用SSIS处理数据并执行所需的更改操作,或者将人员标记为可能的匹配项目,以供某人在进行更改之前进行确认。我为什么要这样做的一个原因是,在不同的系统中,名称可能不匹配,使用模糊逻辑进行比较可能比使用普通旧SQL更好,更准确地找到数学运算。例如,同一个人可能是约翰琼斯在一个系统中,约翰尼琼斯在另一个系统中。

它也可以帮助系统尝试匹配存储每个系统唯一记录标识符的表,以便在进行更改时仍可以保持匹配状态。当玛丽史密斯与约翰尼琼斯结婚,并在一个系统中改为玛丽琼斯时,她的信息仍然可以在另一个系统中与玛丽史密斯交往。