我正在设计一个系统,我必须与Server数据库保持同步客户端数据库。有一个中央服务器(SQL Server 2008有20个表)和大约30个客户端(SQL Server或SQL Server CE)。客户不需要所有20个表,但10个是公平的猜测。这是一个医疗系统,它将处理最多1200名患者,因此它不是一个庞大的系统。系统将部署在互联网不会始终可用的非常偏远的地区,因此我需要一些数据库同步技术。一旦互联网可用,客户端数据库将与服务器同步。在阅读了有关可用技术之后,我倾向于使用Microsoft Sync。
我的问题是关于Microsoft Sync Framework的连接速度要求。客户端将部署在非常偏远的地区。互联网将在短时间内提供,互联网速度将非常慢(假设下载速度为20KB /秒)。
我担心Sync Framework在这种Internet速度下的性能。是否有任何基准可以让我了解使用不同连接速度值估计同步时间?当互联网速度这么慢时(例如20KB /秒),使用Sync Framework是否有意义。速度慢只会影响完成同步所需的时间,还是有任何其他缺点?
我没有DB同步技术的经验。这是我第一次做这种性质的事情。如果我遗漏了一些重要内容,或者这不是正确的方式,请随时分享您的想法和想法。
谢谢,
答案 0 :(得分:1)
您可以使用Sync Framework完成任务。同步的持续时间将取决于必须从/向服务器上载/下载的更改数量。在您的情况下,如果您无法保证完成整个同步所需的连接,则必须使用同步框架中的批处理将您的同步分解为更小的块。
要测试同步事务执行所需的时间,设置测试方案,然后您可以启用Sync Framework中的跟踪组件来跟踪同步过程:http://msdn.microsoft.com/en-us/library/cc807160.aspx
答案 1 :(得分:0)
不仅会影响性能的更改次数,还会影响大小。 10行更改可以使每行为5k或包含1MB blob。
如果通过批处理意味着设置内存数据缓存大小,它也不会批量更改应用程序,它会批量通过网络发送更改。
sync fx就像任何其他数据库应用程序一样,你应该考虑锁定,并发等......
在繁忙的系统上,如果必须等待释放锁,同步将花费时间。