小编b1k*_*jsh的帖子

使用 MaxBCPThreads 拆分快照文件以进行事务复制

我刚刚建立了一个出版物,我正在尝试更快地应用快照。到目前为止,分发代理遵守MaxBCPThreads设置,但快照代理不遵守。我期望它拆分文件,以便分发代理上的线程会去获取数据。但是在我拍摄快照时似乎无法做到这一点。

我在网上看到的一些可能的解决方案在哪里更新代理配置文件(我最初只是用标志编辑了代理步骤,这适用于 dist 代理但不适用于快照)。

我尝试更新代理配置文件,但没有任何区别。我还发现有人说你应该将 sync_method 设置为native所以我检查了我的脚本,我已经创建了指定native模式的发布。

我想知道是否缺少MaxBCPThreads将所有 bcp 文件拆分为不同文件所需的特定设置。

我以为我已经解决了我自己的问题:看起来您必须有一个具有一组不同范围的聚集索引才能让 SQL Server 将文件拆分为多个分区。但是现在我的索引似乎在所有范围内都是 0。

DBCC SHOW_STATISTICS

在此处输入图片说明

经过额外的测试,我发现这似乎只适用于复制表。如果您要基于(索引)视图进行复制,那么您似乎只能获得 1 bcp 文件,而不是从普通表中获得的分区内容。

问题是:为什么 SQL 复制不能像对普通表那样为索引视图分区 bcp 文件?

我正在复制没有表的索引视图本身(“索引视图作为表”)。原因是我必须加入数据库的识别信息供订阅者用于其他事情。到目前为止,我发现的唯一方法是使用 手动拆分我的视图BETWEEN,这不是特别有效。我希望我可以让 SQL Server 在复制普通表时做我期望的事情。

replication sql-server clustered-index index-tuning transactional-replication

23
推荐指数
1
解决办法
1111
查看次数