如何使用同步框架同步使用大致相同的数据重新创建的表



我已经做了一个程序,它使用同步框架将一些表从Azure同步到OnPremise(本地服务器)。我按照以下示例制作了程序:如何:配置和执行与 SQL Azure 的同步。

它与表格一起工作得非常快,他的更改是新行。新行是完美的同步。第一次同步需要几个小时,但现在所有同步都需要几秒钟。

但是我们还有其他表被删除并重新创建,这些数据大多相同(99% 是旧数据,1% 是新数据)。更新这些表的程序:删除所有数据并再次添加所有数据(包括新数据)。

在这种情况下,我们的同步程序看到所有表都已更改。它可怕的缓慢。所有同步(第一次、第二次、第三次)都需要数小时。

可以修复它吗?

谢谢

假设您只是删除行并重新插入,因为如果您实际上要删除表,那么您已经破坏了更改跟踪,因为更改跟踪触发器会随表一起删除。

如果您要重新插入行,则触发器会将跟踪表中的相应行标记为已更改。同步时,即使您之前已同步行,也会同步这些行。由于目标上已经存在行,因此会遇到冲突,从而减慢速度。如果您有 100 万行,则需要解决 100 万行。

如@JNYRanger:"您可能需要编写自己的提供程序,因为同步框架会在已预配的每个表中构建特殊组件。通过删除表并重新创建表,框架不知道如何处理它已经拥有的知识"。

最新更新