复制 - 在某些时候同步大多数数据

时间:2010-04-27 20:31:12

标签: sql-server replication

我有一些未正确“分区”的数据(缺少更好的词)。

所有插入,处理和报告都在同一个表上进行。大部分处理在插入后不久发生,并且在不久后它变得不可变(我们正在谈论几天)。

我可以在复制到旧表的新表上执行所有插入和处理。当我检测到数据已变为不可变时,我会从新表中删除数据,但我会编辑删除复制存储过程,以便删除不复制。

这个想法有多糟糕?< edit1>即编辑复制存储过程。< / edit1>

目前看起来很吸引人(我还没有睡觉)因为它可以通过对应用程序进行非常小的更改来缓解性能问题。看起来这也许是一个很好的方式来拍摄自己的脚。

EDIT1:

我喜欢插入两个表的想法,因为我可以避免在Jono的回答中描述的视图和维护窗口。没有冒犯,Jono,我其实在其他地方使用这种技术。

我可能想要使用复制,因为一个表可能在另一个数据库中(我知道,我没有提到这个),这样我不必担心提交到两个表,我只是让复制处理

我的实际担忧(我没有说清楚)是编辑复制存储过程可能最终导致部署/维护问题。

1 个答案:

答案 0 :(得分:0)

我不提倡复制来解决性能问题(除非是物理数据分发的问题);如果有的话,随着变化传播到目的地,它会降低你的系统速度。如果您使用的是单个服务器,我建议添加第二个表格,其中第一个表格与第一个表格相同,但您的索引针对您在处理阶段所做的工作进行了优化。然后创建一个从两个表中进行选择的视图,并在任何需要两个表并集的查询中使用该视图。然后,您可以在第二个表中抛出更多硬件(我想到的是一个单独的文件组而不是更多的主轴),然后在可用维护窗口期间将数据每周延迟迁移到第一个表中。

相关问题