我正在尝试复制(事务性、推送)一个相对较小的表(50K 行),并受制于几个不同的过滤器,这些过滤器相当昂贵(每个过滤器至少需要一个小时才能完成,涉及与另一个数据库中包含 40 亿行的表的连接)。我预计已发布的文章每天必须同步几次。
这是可行的吗?还是我应该寻找其他解决方案?
- 复制期间对原始表的独占锁定是否存在问题?
- 目前,快照代理状态显示“[0%] 该进程正在运行并正在等待服务器的响应。”对于昂贵的过滤器来说,这正常吗?这在实践中可以接受吗?
答案1
以下是摘录自MSDN - 过滤已发布的数据:
事务发布中的行筛选器可能会增加大量开销,因为项目筛选器子句会针对已发布表写入的每个日志行进行评估,以确定是否应复制该行。如果每个复制节点都可以支持完整的数据加载,并且整体数据集相当小,则应避免在事务发布中使用行筛选器。
最好使用与其他行/表/数据库完全独立的非常快速的可搜索条件来过滤行。