我正在编写一个系统,需要将数据从客户端本地托管的SQL数据库复制到托管服务器数据库。虽然优化是为了减少需要发送的实际数据量,但本地数据库中的大多数数据都被复制到实时数据中。
将这些数据从一个数据库发送到另一个数据库的最佳方法是什么?目前我可以看到一些可能的选择,但它们中没有一个能够成为主要候选人。
复制的数据进入表的副本,没有标识字段,因此可以插入/更新数据,在这方面没有任何违规。这种数据传输不必在数据库级别完成,可以从.net或其他设施完成。
更多信息
更新的频率将根据记录的更新频率而有所不同。但基本思想是,如果记录被更改,则用户可以将其发布到实时数据库。或者,我们将记录更改并以可配置的频率批量发送。
我们正在谈论的记录数目目前为核心表(产品目录)每个表大约4000行,但这完全可变,取决于我们部署它的客户端,因为每个都有自己的产品目录,从100到1000的产品。为了澄清,每个客户端都在一个单独的本地/托管数据库组合中,它们不会合并到一个系统中。
除了个别发布项目外,我们还需要完全重新同步数据,以便按需完成。
系统的另一个方面是从本地服务器复制的一些数据存储在辅助数据库中,因此我们有效地将两个数据库中的数据合并到一个实时数据库中。
答案 0 :(得分:1)
我唯一关心的是您从许多客户那里收集产品目录的地方。如果它们都在单独的表中,那么一切都很好,而如果它们都在同一个表中,那么这会使事情变得更复杂。
答案 1 :(得分:0)
你在谈论多少数据?有多少“客户”dbs?它需要经常发生多少次?这些问题的答案将对你应该采取的道路产生重大影响。
答案 2 :(得分:0)
这个问题有几乎无限的解决方案。为了缩小范围,你必须告诉我们你的要求和优先事项。
批量操作可能涵盖多种场景,您应将其添加到列表顶部。
答案 3 :(得分:0)
我建议使用数据转换服务(DTS)。您可以创建一个DTS包用于追加,另一个用于重新创建数据。
可以从代码中调用DTS包操作,因此您可能需要创建一个包装器来控制可以从应用程序调用的包。
答案 4 :(得分:0)
最后,我选择了一组触发器来捕获对更改日志表的数据修改。然后有一个应用程序轮询该表并生成XML文件以提交给在远程位置运行的Web服务。