在SQL Server中遇到接口表结构的问题

时间:2016-11-14 04:15:27

标签: sql-server sql-server-2008 tsql sql-server-2008-r2

我目前正在开展涉及第三方数据库和应用程序的项目。到目前为止,我们能够在我们的数据库之间成功 TEST 和接口数据。然而,当我们提取大量数据(每行100000行和10列)时,我们遇到了麻烦,并且突然它因交易中断而停止了(无论是停电,强制退出等等),丢失或在这种类型的场景中发生了重复数据。

您能否提出处理这些类型的方案的建议?谢谢!

这是我们当前的界面结构

OurDB -> Interface DB -> 3rdParty DB

OurDB :我们正在将OurDB(位列为false)的记录提取到InterfaceDb

InterfaceDB :从OurDB插入记录后,我们将OurDB位列更新为true

3rdPartyDB :他们将从InterfaceDB中提取并删除所有记录(他们假设所有记录都用于提取)

1 个答案:

答案 0 :(得分:1)

嗯,你肯定需要一个ETL工具,然后最好是SSIS。首先,它将大大提高您的传输速率,同时还提供强大的错误处理。此外,您必须使用查找转换以确保重复项不会进入sytsem。我建议使用缓存连接管理器来执行查找。

在设计方面,如果你的源系统(OurDB)有一个主键说recId,那么在你的InterfaceDB表中有一个列说source_rec_id。假设您的第一次运行已转移100行。现在,在第二次运行中,您需要选择100 + 1记录并继续下一行。通过这种方式,您将拥有跟踪机制以及源系统和目标系统之间的一对一关联,以了解已传输的记录数量,剩余数量等。

为了更好地理解SSIS,请转到Channel 9 - msdn - SSIS。非常有用的资源。