从SQL到SQL的数据批量传输(维护关系)

时间:2011-02-20 23:01:53

标签: c# sql-server database

因此,我们目前要求将3个独立系统中的数据提取到3个“临时数据库”中。这些临时数据库共享相同的表格布局。

一旦填充了所有3个临时数据库,提取工具将获取数据并对其进行验证,并将其移至“最终”数据库,并保持关系。

目前有8个左右的表,每个表有~100k行。所以数据不是很多。但是转移需要很长时间。

数据的一个示例是Blog Posts to Tags,其中包含以下表格:

- Blog Post
-- ID

- Tags
-- ID

- Blog Post Tags
-- Blog ID
-- Tag ID

因此,在提取数据时,我们需要保持关系,即使ID会发生变化。所以Insert (if not exists) Post, Get IDInsert (if not exists) Tag, Get IDInsert Blog Post Tag, with ID's

目前我正在使用LLBLGen实体,并获取10,000个Blog Post Tags的批次,检查Post是否存在,如果不存在insert,则与{{1}相同}}。 但由于每tag次查询量很大,因此需要很长时间。

我尝试过的另一种方法是Blog Post TagDo all Blog Posts然后执行所有Do All Tags。但是,如果任务失败,则不允许重新运行该任务(因为之前的方法会在传输时删除每个Blog Post Tags

我们正在使用C#3.5,SQL 2008,LLBLGen 2.6(但是可以改变它)。

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

就个人而言,我会考虑使用SSIS做某事或使用导出文件并通过批量复制导入。那些将是你速度最好的赌注。您可以考虑的另一件事是设置日志传送以使您的暂存数据库与实时同步,但我不确定它是否符合您的要求。

---重新阅读你的帖子后很抱歉我意识到分离的系统可能不是SQL Server ...... ---