首先感谢您的阅读。
我需要复制基于连接过滤器的数据子集;基于与其他表的联接的过滤器(Microsoft:“使用联接过滤器,您可以将行过滤器从一个已发布的表扩展到另一个。”)。这是设置:
- SQL Server 2012;
- 事务复制订阅上的复制源
- 复制需要是单向同步(从发布者到订阅者);
- 只有一个订户/订阅;
- 数据集小,交易不多;
- 广域网。
到目前为止我所建立的:
Option 1- 创建视图并通过事务复制将它们复制到表。
pros:不使用触发器,
cons:像键、约束这样的对象不会被复制
Option 2- 将合并复制与联接过滤器结合使用并设置@subscriber_upload_options = 2(仅下载)。
这两种方法的结果是完全相同的。然而,技术有所不同,例如使用的不同代理。据我了解,合并复制特别适用于服务器-客户端架构,这不是我的情况,但是..它有效..
由于结果是相同的,我有点怀疑我应该遵循哪种方法。我希望您能给我一些考虑的要点或建议我应该采取哪种方法。
对于本问题中给出的设置,事务复制和合并复制类型都很好。
您唯一需要考虑的事情是:
- 如果数据传输到订阅服务器的延迟应该最短,请选择事务复制。
- 如果您需要访问中间数据状态,请选择事务复制。
例如,如果一行更改五次,事务复制允许应用程序响应每次更改(例如触发触发器),而不仅仅是该行的净数据更改。
但是,您为应用程序选择的复制类型取决于许多因素。
以下是 learn.microsoft.com 上相关文章的链接:
-
“复制类型” https://learn.microsoft.com/en-us/sql/relational-databases/replication/types-of-replication?view=sql-server-2017
-
“事务复制” https://learn.microsoft.com/en-us/sql/relational-databases/replication/transactional/transactional-replication?view=sql-server-2017
-
“合并复制” https://learn.microsoft.com/en-us/sql/relational-databases/replication/merge/merge-replication?view=sql-server-2017
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)