cus*_*ar9 7 c# sql sql-server web-services sql-server-ce
我意识到这是一个讨论很多的话题,但我看到的所有建议似乎都涉及直接访问SQL Server,在我们的实例中并不理想.
我们的场景是一个远程SQL Server数据库(例如)100个表.我们正在开发一个轻量级桌面应用程序,它将使用SQL Server Compact数据库并定期与远程服务器同步(例如)20个表的子集.
我想控制复制的发生方式,因为速度是我们的主要问题,因为远程服务器距离数千英里远.
此外,我不需要同步每个表中的所有记录 - 只有与每个用户相关的记录.
我非常喜欢SQL Merge工具,但它要求客户端连接到远程SQL Server.目前这是不可能的,我们正在考虑通过我们的应用程序或其他方法访问的Web服务与远程服务器连接.
欢迎任何建议.
UPDATE
只是为了澄清,互联网连接是间歇性的,这是我们需要同步这两个数据库的主要原因.
事实上,您为客户端使用紧凑数据库,这对您在这种情况下的可用选项造成了一些相当严重的限制。
考虑到您想要的限制和性能要求,您可以考虑实现基于服务的 http 端点来保持所需的表同步。如果您的架构允许,异步执行此操作将显着提高性能,但同样,根据您的架构,它甚至可能不可行。
其他需要考虑的事情是对如上所述的 Web 服务使用 Web 套接字而不是标准 http 连接。这样您就可以保持客户端实时同步,因为 Web 套接字是真正的全双工实时连接。这样做的主要问题是,您要么必须确保所有客户端都符合 Web 套接字要求,要么为不符合标准的客户端提供后备方案,使用模拟框架来模拟 Web 套接字连接。
不确定这是否有帮助。