小编Mar*_*vin的帖子

BLOB 合并复制期间临时数据库磁盘 I/O 高

有一个用于复制 BLOB(类型image)的合并发布,对于我的数据大小获得了非常高的 tempdb 磁盘 I/O。出版物仅供下载,没有过滤器。

高磁盘 I/O 是由同步引起的(当没有订阅者同步时,一切正常),与订阅者数量密切相关。即使在同步之间发布者上没有更改数据时也会发生这种情况,这让我很困扰。

  • 复制表大小:7MB(总行数约为100)
  • tempdb I/O :写入约 30 MB/秒(日志和数据文件)
  • 订阅者数量:略高于 100,每个订阅者每 30 分钟同步一次(或多或少均匀)。
  • 保留期设置为 14 天

在发布服务器上使用 SQL Server 2008,在订阅服务器上使用 SQL Server 2005-2008R2。所有订阅者都使用 Web 同步。

此外,订阅者的同步需要很多时间,多次出现replmerg.log如下:

DatabaseReconciler, 2015/04/21 12:13:40.348, 3604, 25088,  S2,  
INFO: [WEBSYNC_PROTOCOL]  
Sending client ReconcilerPhase WebSyncReconcilerPhase_RegularDownload     

DatabaseReconciler, 2015/04/21 12:13:47.063, 3604, 25194,  S2,  
INFO: [WEBSYNC_PROTOCOL]  
Received server ReconcilerPhase WebSyncReconcilerPhase_LastRegularDownload
Run Code Online (Sandbox Code Playgroud)

试过@stream_blob_columns打开和关闭没有效果。

问题是:这是个好主意,用合并复制到这些斑点发送到用户?我们还有其他出版物(尽管它们没有 BLOB 列),其中包含大量数据而没有 tempdb 问题。是 SQL Server 缺陷还是设置不当?

发布者和分发者在同一个实例 SQL Server 2008 SP4 上,无法确定订阅者,其中一些可能不是最新的。无论如何,如果它似乎有帮助,我可以准备一个测试环境,其中几乎没有订阅者拥有受控版本。

确认,由于执行sys.sp_MSenumgenerations90 …

performance sql-server merge-replication

8
推荐指数
1
解决办法
1150
查看次数