2

我正在设计一个系统,我必须使客户端数据库与服务器数据库保持同步。有一个中央服务器(SQL Server 2008 有 20 个表)和大约 30 个客户端(SQL Server 或 SQL Server CE)。客户不需要所有 20 个表,但 10 个是一个合理的猜测。这本质上是一个医疗系统,最多可以处理 1200 名患者,所以它不是一个庞大的系统。系统将部署在互联网并不总是可用的非常偏远的地区,所以我需要一些数据库同步技术。一旦互联网可用,客户端数据库将与服务器同步。在阅读了可用技术之后,我倾向于使用 Microsoft Sync。

我的问题是关于 Microsoft Sync Framework 的连接速度要求。客户端将部署在非常偏远的地区。互联网将在短时间内可用,互联网速度将非常慢(假设下载速度为 20KB/秒 Max)。

我担心 Sync Framework 在这种互联网速度下的性能。是否有任何基准可以让我了解不同连接速度值的估计同步时间?当互联网速度如此缓慢(例如 20KB/秒)时,使用 Sync Framework 是否有意义。慢速是否只会影响完成同步所需的时间,还是还有其他缺点?

我之前没有使用数据库同步技术的经验。这是我第一次做这种性质的事情。如果我遗漏了一些重要的东西,或者在这种情况下这不是正确的方法,请随时分享您的想法和想法。

谢谢,

4

2 回答 2

1

您应该可以将 Sync Framework 用于您的任务。同步的持续时间将取决于必须从服务器上传/下载到服务器的更改数量。在您的情况下,如果您不能保证完成整个同步所需的连接,您将不得不使用 Batching in Sync Framework 将您的同步分解成更小的块。

您可以以此为起点:http: //blogs.msdn.com/b/sync/archive/2010/09/24/how-to-sync-large-sql-server-databases-to-sql-天蓝色的.aspx

要测试执行同步事务可能需要多长时间,请设置一个测试方案,然后您可以启用 Sync Framework 中的跟踪组件来跟踪同步过程:http: //msdn.microsoft.com/en-us/library/ cc807160.aspx

于 2013-03-15T22:36:01.567 回答
0

影响性能的不仅是更改的数量,还有大小。10 行更改可以使每行 5k 或包含 1MB blob。

如果通过批处理是指设置内存数据缓存大小,它也不会批处理更改的应用程序,它会通过网络批量发送更改。

sync fx 就像任何其他数据库应用程序一样,您应该考虑锁定、并发性等...

在繁忙的系统上,如果必须等待锁被释放,同步将需要时间。

于 2013-03-16T06:22:24.213 回答