如何将复杂对象批量插入SQL Server数据库

时间:2014-01-06 16:24:34

标签: sql-server xml-parsing io entity-framework-5 query-optimization

我有一个小项目,处理大量的I / O数据,数据库插入和状态检查。

我会解释自己:

我必须每天在特定时间读取数百个位于磁盘中的文本文件,其中包含特定的行格式,将这些行转换为对象,作为数据迁移任务。

稍后,我需要使用从Nuget包存储库下载的EF 6在SQL Server中存储读取 最近。但是,在编写任何解决方案之前,我一直有疑问:

因为在这个过程中我想避免不必要的查询要求记录存在(以避免重复或维护它们直到进一步消除),在发生一些批处理作业之后。

我有这些想法:

每次插入所有输入并定期删除重复项作为sql或我的应用程序计划任务,或每次插入时检查。考虑到每次都需要检查数百条记录,并且每天都会进行检查。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我通常采取两步法。

  1. 将文件中的记录解析为所需的形状。
  2. 将已解析的记录插入辅助表。这张桌子通常没有 有'真实表'的约束,并有一些额外的列 保持验证标志。
  3. 上传后,启动存储过程,检查记录并以可能的无效原因对其进行注释。
  4. 然后你可以决定处理所有,部分或全部。您甚至可以将错误记录设置为稍后进行检查等。但主要是,您现在具有“基于集合的SQL操作”的强大功能,而不是被强制进入rbar操作(逐行压缩行)。