【发布时间】:2013-01-11 01:34:59
【问题描述】:
我正在编写一个内部应用程序,其中一个功能是从远程系统导入数据。来自远程系统的数据以 CSV 文件的形式出现。我需要将系统中的数据与 CSV 文件中的数据进行比较。
我需要对我的系统应用任何更改(添加和更改)。我需要跟踪每个更改的字段。
我的数据库是规范化的,所以我要处理大约 10 个表来对应 CSV 文件中的数据。实现这一点的最佳方法是什么?每个 CSV 文件每天处理大约 500,000 条记录。我首先使用查找 ID 从我的 SQL 数据库中逐行查询,然后使用 c# 逐字段进行比较,并根据需要进行更新或插入;但是,这需要的时间太长了。
有什么建议吗?
【问题讨论】:
-
将所有 CSV 数据插入数据库中并进行表格比较或相反,将所有数据库数据导出为 CSV 并进行文件比较。
-
你有什么可以作为唯一键的吗?
-
我有一个作为唯一键的字段。如果我尝试从数据库中提取所有数据,大约 10 个规范化表,则需要太多时间和内存。我想在 c# 代码中进行大部分比较(如果不是全部的话),因为我想将我的数据库排除在外,并在更新时应用特殊的业务规则。