我有一个非常大(超过 5000 万条记录)的数据集,我从旧的 Interbase 数据库导入到新的 SQL Server 数据库中。
我目前的做法是:
从 Interbase 数据库中获取 csv 文件(完成,使用了我在网上某处找到的名为“FBExport”的程序)
旧数据库的架构与新数据库不匹配(不在我的控制之下),所以现在我需要批量编辑某些字段,以便它们在新数据库中工作。这是我需要帮助的领域
编辑到正确的模式后,我正在使用
SqlBulkCopy
将新编辑的数据集复制到 SQL Server 数据库中。
第 3 部分运行速度非常快,诊断显示一次导入 10,000 条记录几乎可以立即完成。
我对第 2 部分的当前(缓慢)方法是我只是逐行读取 csv 文件,并查找相关信息(例如,csv 文件的 ID 为 XXX########,而新数据库每个 XXX 和 ######## 都有一个单独的列。ex2. csv 文件通过字符串引用模型,但新数据库通过模型表中的 ID 引用)然后将新行插入我的本地表,然后SqlBulkCopy
在我的本地表变大之后。
我的问题是:这个数据编辑步骤的“最佳”方法(性能方面)是什么?我认为很可能有一种 linq 类型的方法来解决这个问题,它会表现得更好,如果可以的话,我将如何去做?