0

我们有一个旧数据库,其表结构经过深思熟虑,几乎没有关系设置,也没有命名方案。我已经创建了一个新的数据库,它具有一个干净的关系数据结构,它实现了正确的设计实践。

我正在寻找有关将旧数据迁移到新格式的不同方法的建议。这将需要大量的数据重塑,这不会很有趣。数据被大量访问,挑战将是使所有相关数据(帐户、重要服务等)的两个数据库保持同步。

我认为触发器可能是这里的方法 - 但也许有一种我不知道的不同方法(可能是 MS Sync Framework,或代码级数据适配器,因为有太多的数据访问代码传播,它会更有效到处都是,经典的 ASP 和 .Net 超过几十个项目)。有问题的数据库是 SQL Server 2005,在 SQL Server 2000 兼容模式下运行。

4

2 回答 2

1

我认为要走的路是在新数据库中编写一个存储过程,它实际上会拉动您的增量更改(仅从上次运行到运行存储过程时所做的修改),然后放置这个存储过程在 sql 代理作业中。

将 sql 代理作业配置为每 15 分钟运行一次并让数据同步。

在这种情况下使用触发器的缺点

触发器会降低性能,因为 sql server 将执行触发器代码以及更新/插入/删除语句,并且每次都将这些作为执行的一部分,即如果您的触发器代码需要 2 秒来执行并且没有触发器的更新语句需要 2 秒执行,然后更新时间将增加到 4 秒触发器到位。因此,在这种情况下使用触发器可能会导致巨大的性能瓶颈。

于 2013-06-29T01:03:26.483 回答
0

我在工作中遇到了同样的情况,我目前正在编写一个应用程序来进行迁移。原始数据库没有建立关系,所以它真的就像一组断开的电子表格。通过构建我自己的应用程序,我能够使用新建立的外键迁移数据,并分配特定于数据的默认值来代替空值。

于 2013-07-23T04:23:05.750 回答