复制经过筛选的数据子集:合并复制还是事务复制?

3
首先感谢您的阅读。
我需要复制基于连接过滤器的一部分数据; 根据与另一个表的连接进行筛选过滤(Microsoft:“使用连接过滤器,您可以将一行过滤器从一个发布表扩展到另一个表。”)。这是设置:
SQL Server 2012;
订阅事务复制的复制源
复制需要单向同步(从发布者到订阅者);
只有一个订阅者/订阅;
数据集较小,没有太多交易;
WAN网络。
我迄今为止建立的内容:
选项1 -创建视图并通过事务复制将其复制到表中。
优点:不使用触发器,
缺点:不会复制键、约束等对象
选项2-使用合并复制和连接筛选器,并设置 @subscriber_upload_options = 2(仅下载)。
优点:原生的MS功能,所有对象都被复制
缺点:合并复制使用触发器,这些触发器不会随着批量加载而触发
这两种方法的结果完全相同。然而,技术上有所不同,例如使用不同的代理程序。据我了解,合并复制特别适用于服务器 - 客户端架构,但这不是我的情况,但是它确实起作用。
由于结果相同,我有点怀疑应该遵循哪种方法。我希望您能给我一些要考虑的要点或建议我应该遵循哪种方法。

关于Technet,如果需要过滤,应该使用合并复制:'数据过滤是必要的,以便订阅者接收到不同的数据分区。' - user3248190
我也一直在查看,但还没有时间回复。你正在复制的网络是什么?局域网,广域网,VPN? - Brandon Williams
@BrandonWilliams 非常感谢。该网络是广域网。 - user3248190
1个回答

1
对于此问题中给出的设置,事务性复制和合并复制类型都很好。
您需要考虑的唯一事情是:
  • 如果订阅者的数据传输延迟应该最小化,请选择事务性复制。
  • 如果您需要访问中间数据状态,请选择事务性复制。
    例如,如果一行更改了五次,则事务性复制允许应用程序响应每个更改(如触发器触发),而不仅仅是行的净数据更改。
但是,您为应用程序选择的复制类型取决于许多因素。
这里是有关learn.microsoft.com的相关文章链接:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接