我正在编写内部应用程序,其中一个功能是从远程系统导入数据。来自远程系统的数据作为CSV文件提供。我需要将系统中的数据与CSV文件中的数据进行比较。
我需要对我的系统应用任何更改(添加和更改)。我需要跟踪每个被更改的字段。
我的数据库已规范化,因此我正在处理大约10个表以与CSV文件中的数据相对应。实现这个的最佳方法是什么?每个CSV文件包含大约500,000条每日处理的记录。我首先使用查找ID从我的SQL数据库中逐行查询,然后使用c#执行字段比较并根据需要进行更新或插入;然而,这需要太长时间。
有什么建议吗?
答案 0 :(得分:2)
您可以执行以下操作:
使用该方法,您可以使用RDBMS功能实现几乎所有清理,验证和更新逻辑。
如果您的RDBMS是SQL Server,您可以利用SQL Server Integration Services。
答案 1 :(得分:2)
如果您有任何作为唯一键的内容,则可以执行以下操作:
答案 2 :(得分:0)
扩展对您问题的第一条评论。
创建一个与csv文件格式匹配的适当索引表,并将数据直接转储到其中。
使用适当的查询存储过程来更新/删除/插入活动表。
摆脱临时表。