复制已过滤的数据子集:合并或事务复制?

2024-04-12

首先感谢您的阅读。

我需要复制基于连接过滤器的数据子集;基于与其他表的联接的过滤器(Microsoft:“使用联接过滤器,您可以将行过滤器从一个已发布的表扩展到另一个。”)。这是设置:

  • SQL Server 2012;
  • 事务复制订阅上的复制源
  • 复制需要是单向同步(从发布者到订阅者);
  • 只有一个订户/订阅;
  • 数据集小,交易不多;
  • 广域网。

到目前为止我所建立的:

Option 1- 创建视图并通过事务复制将它们复制到表。

  • pros:不使用触发器,

  • cons:像键、约束这样的对象不会被复制

Option 2- 将合并复制与联接过滤器结合使用并设置@subscriber_upload_options = 2(仅下载)。

  • pros:本机 MS 功能,所有对象均被复制

  • cons:合并复制使用触发器,这些触发器不会被批量加载触发。

这两种方法的结果是完全相同的。然而,技术有所不同,例如使用的不同代理。据我了解,合并复制特别适用于服务器-客户端架构,这不是我的情况,但是..它有效..

由于结果是相同的,我有点怀疑我应该遵循哪种方法。我希望您能给我一些考虑的要点或建议我应该采取哪种方法。


对于本问题中给出的设置,事务复制和合并复制类型都很好。
您唯一需要考虑的事情是:

  • 如果数据传输到订阅服务器的延迟应该最短,请选择事务复制。
  • 如果您需要访问中间数据状态,请选择事务复制。
    例如,如果一行更改五次,事务复制允许应用程序响应每次更改(例如触发触发器),而不仅仅是该行的净数据更改。

但是,您为应用程序选择的复制类型取决于许多因素。

以下是 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(使用前将#替换为@)

复制已过滤的数据子集:合并或事务复制? 的相关文章

随机推荐

  • Google Developer Console 的凭证方权限

    I got an problem after i create and APIs on Google Developer Console and enable the GCM service but i want to add an ser
  • ES6 中的类声明和类表达式

    我不清楚类表达式和类声明 请帮助我理解它们之间的区别 Thanks 这相对简单 在 类表达式 中 类对象NamedFoo被分配给一个名为的变量Foo 像这样 var Foo class NamedFoo constructor whoIsT
  • 动态创建事件网格主题和订阅,而无需通过编码访问 Azure 门户?

    我想动态创建事件网格主题 每当我的天蓝色函数被触发时 它就会根据它获得的输入创建新主题 我只是想知道如果有什么方法可以创建天蓝色主题 而无需转到天蓝色门户 有一个EventGrid管理库Microsoft Azure 管理 EventGri
  • 用于发现.NET代码依赖关系的工具(不是VS2010)

    给定一个非常大的 NET 代码库 有些部分在源代码中 有些部分在二进制文件中 这都是 NET 代码 我想要一个工具来发现该代码库中的依赖关系 按组件和类型 以图形形式可视化依赖关系会非常好 我想要 实例化图 引用图 调用图 类型依赖关系图
  • 在 haskell 中实现 Alpha 等价

    我想使用此数据定义来定义 Alpha 等价 type Sym Char data Exp Var Sym App Term Exp Lam Sym Exp deriving Eq Read Show 做这个的最好方式是什么 一种方法是将名称
  • 如何删除 git 中的本地存储库? [复制]

    这个问题在这里已经有答案了 我找不到命令 我尝试谷歌搜索 git 删除存储库 删除 git如果您只想删除与 git 相关的信息 分支 版本 请在存储库的根目录中删除该目录 如果你想删除所有内容 git data 代码等 只需删除整个目录即可
  • Gradle 包装器在 Windows 上的 Android 项目中获取错误的 Java 版本

    我在 Windows 上的 Android 项目中使用 gradle 当我执行时 gradlew version在我的项目路径中 错误显示为Could not determine java version from 12 我确实有已安装 J
  • 奇怪的错误,set::begin() 总是返回 const 迭代器

    为什么 set begin 总是返回一个 const 迭代器而不是标准迭代器 35 int test 36 std set
  • 在 MySQL 中将“描述”转换为“创建表”?

    我们可以从描述中获取 创建表 命令 describe 吗 我有一个表 其描述可以从 DESC TableName 获得 我想知道我是否可以了解该表是如何创建的 以便我可以使用相同的命令执行其他操作 我可以得到 sql dump 但我想知道是
  • F# 从 while 循环中中断

    有什么方法可以做到这一点C C 例如 C 风格 for int i 0 i lt 100 i if i 66 break 最简洁的答案是不 您通常会使用一些高阶函数来表达相同的功能 有许多函数可以让您执行此操作 对应于不同的模式 因此 如果
  • IP 地址的索引范围搜索算法

    给定一个包含 100 亿个以 CIDR 表示法表示的 IPv4 范围或两个 IP 之间的 ACL 列表 x x x x y x x x x y y y y 用于测试给定 IP 地址是否满足一个或多个 ACL 范围条件的有效搜索 索引算法是什
  • 在 MVP android 应用程序中演示者之间进行通信

    我正在使用 MVP 模式构建一个小型测试 Android 应用程序 我有两个片段片段 B 我用于滑动抽屉 和片段 A 主片段 两个片段都有自己的演示者 当我单击滑动绘制时 它应该发送消息或调用片段 A 中的方法来更新视图 我想问一下 两个片
  • 如何使用智能卡和 python 发出 TLS 请求?

    我尝试使用 python 库 请求 与受智能卡保护的网站进行通信 这意味着 SSL 中的强身份验证 您必须提供客户端证书 证书和私钥 由于我使用的是智能卡 因此我无法读取普通保护的私钥 只能读取模数 我可以使用 python 库 PyKCS
  • Firestore 分别按日期和时间查询

    如何按特定日期和时间范围查询我的文档 IE 我想按特定日期范围 01 01 2019 31 01 2019 查询文档 并且从这些日期仅查询上午 10 点到中午 12 点制作的文档 事情会是这样的 let ref db collection
  • Python将一维数组转换为二维数组[重复]

    这个问题在这里已经有答案了 我有一个清单 1 2 3 4 5 6 7 8 我想在 python 中将其转换为 1 2 3 4 5 6 7 8 有人可以帮我解决这个问题吗 接受输入 def chunks l n return l i i n
  • 声明 DNA 的新数据类型

    我从事生物学研究 特别是 DNA 并且经常存在来自基因组测序的数据大小的问题 对于那些没有生物学背景的人 我将快速概述 DNA 测序 DNA 由四个字母组成 A T G 和 C 它们的具体顺序决定了细胞中发生的情况 然而 DNA 测序技术的
  • GitHub 可以用于托管文件(mp3 和图像)吗?

    我正在寻找免费的文件托管服务 它可以让我获得静态链接到每个单独的文件easily 因此 文件 1 png 2 png 3 png 应分配给 URL www something com somepath 1 png http www some
  • Bourbon/Sass:#{$all-text-inputs} 带有悬停或焦点?

    根据波本文档 http thoughtbot com bourbon html5 input types 您可以使用 all text inputs 转动这个 all text inputs border 1px solid green 进
  • 是否可以选择以假的方式列出目标(可能带有描述)?

    在 Ruby RAKE 中 您可以通过以下方式记录您的任务 rakefile desc cleans temp task clean do p cleaning end desc compile the source task compil
  • 复制已过滤的数据子集:合并或事务复制?

    首先感谢您的阅读 我需要复制基于连接过滤器的数据子集 基于与其他表的联接的过滤器 Microsoft 使用联接过滤器 您可以将行过滤器从一个已发布的表扩展到另一个 这是设置 SQL Server 2012 事务复制订阅上的复制源 复制需要是