我已经使用Sync Framework将一些表从Azure同步到OnPremise(本地服务器)。 我按照这个例子制作了程序:How to: Configure and Execute Synchronization with SQL Azure。
它的表格令人难以置信,他的更改是新行。 新行是同步完美的。第一次同步需要几个小时,但现在所有同步都需要几秒钟。
但是我们还有其他表被删除并重新创建了大部分相同的数据(99%是旧数据,1%是新数据)。更新这些表的程序:删除所有数据并再次添加(包括新数据)。
在这种情况下,我们的同步程序会看到所有表格都已更改。它的速度很慢。所有同步(第一个,第二个,第三个......)需要几个小时。
是否可以修复它?
谢谢,
答案 0 :(得分:1)
我假设您只是删除行并重新插入,因为如果您实际丢弃了表,那么您已经破坏了更改跟踪,因为更改跟踪触发器将随表一起被删除。
如果要重新插入行,则触发器会将跟踪表中的相应行标记为已更改。同步时,即使您之前已经同步了行,也会同步这些行。由于行已存在于目标上,因此会遇到冲突,从而减慢速度。如果你有100万行,那就是需要解决的100万个冲突。
答案 1 :(得分:0)
作为@JNYRanger:“您可能需要编写自己的提供程序,因为Sync Framework会在已配置的每个表中构建特殊组件。通过删除表并重新创建表,框架不知道如何处理已有的知识“。