有一个用于复制 BLOB(类型image
)的合并发布,对于我的数据大小获得了非常高的 tempdb 磁盘 I/O。出版物仅供下载,没有过滤器。
高磁盘 I/O 是由同步引起的(当没有订阅者同步时,一切正常),与订阅者数量密切相关。即使在同步之间发布者上没有更改数据时也会发生这种情况,这让我很困扰。
在发布服务器上使用 SQL Server 2008,在订阅服务器上使用 SQL Server 2005-2008R2。所有订阅者都使用 Web 同步。
此外,订阅者的同步需要很多时间,多次出现replmerg.log
如下:
Run Code Online (Sandbox Code Playgroud)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
试过@stream_blob_columns
打开和关闭没有效果。
该问题是:这是个好主意,用合并复制到这些斑点发送到用户?我们还有其他出版物(尽管它们没有 BLOB 列),其中包含大量数据而没有 tempdb 问题。是 SQL Server 缺陷还是设置不当?
发布者和分发者在同一个实例 SQL Server 2008 SP4 上,无法确定订阅者,其中一些可能不是最新的。无论如何,如果它似乎有帮助,我可以准备一个测试环境,其中几乎没有订阅者拥有受控版本。
确认,由于执行sys.sp_MSenumgenerations90 …