Sql server 用于每晚将数据从各种SQL Server移动到单个SQL Server的选项
我们有3台SQL服务器(A、B和C)。服务器A已将服务器连接链接到B和C。我们在A上有许多视图连接来自B和C的数据。毫不奇怪,这些视图速度非常慢,需要数小时才能查询。我们讨论的是B和C中许多表中的1000条记录 我们的想法是将数据从B和C移动到A上的本地表中,然后将视图指向本地表。我们提出了许多数据传输选项:Sql server 用于每晚将数据从各种SQL Server移动到单个SQL Server的选项,sql-server,database,Sql Server,Database,我们有3台SQL服务器(A、B和C)。服务器A已将服务器连接链接到B和C。我们在A上有许多视图连接来自B和C的数据。毫不奇怪,这些视图速度非常慢,需要数小时才能查询。我们讨论的是B和C中许多表中的1000条记录 我们的想法是将数据从B和C移动到A上的本地表中,然后将视图指向本地表。我们提出了许多数据传输选项: 每晚,将数据从B和C复制到A,只将增量移动到A上的表中(而不是整个数据集) 每晚,将B和C数据库恢复到A上的本地数据库,并将所有视图指向本地数据库 在a上编写一个自定义存储过程,该过程每晚
有人有其他建议吗?您将永远无法正确检测增量。不要重新发明轮子,您描述的问题有一个简单的直接解决方案:
- 将B和C都设置好
- 在B和C上添加感兴趣的表格作为已发表文章
- 让A订阅B和C,并以近乎实时的方式接收更新
事务复制不会以任何方式修改表。复制代理仅挖掘日志中的更改,并将其转换为更新,这些更新将暂存到分发数据库中,然后应用于订阅服务器。任何第三方应用程序均未发生任何更改,表架构未修改。您可能被误导,认为复制不起作用,因为您只考虑了,这不适合您的问题描述(而且,与事务性复制不同,确实需要对已发布的文章进行结构更改)。您将永远无法正确检测增量。不要重新发明轮子,您描述的问题有一个简单的直接解决方案:
- 将B和C都设置好
- 在B和C上添加感兴趣的表格作为已发表文章
- 让A订阅B和C,并以近乎实时的方式接收更新
事务复制不会以任何方式修改表。复制代理仅挖掘日志中的更改,并将其转换为更新,这些更新将暂存到分发数据库中,然后应用于订阅服务器。任何第三方应用程序均未发生任何更改,表架构未修改。您可能被误导认为复制不起作用,因为您只考虑了,这不适合您的问题描述(而且,与事务性复制不同,确实需要对已发布的文章进行结构更改)。谢谢Remus,我将向项目团队提出此选项。您好,Remus,根据本文,事务复制确实将此列添加到表中:在本常见问题解答中也提到了它。请参阅题为“为什么复制会向复制表添加列”的问题;如果表未发布,它是否会被删除?嗯,在进一步调查之后,如果您希望订阅者更新数据(我们没有),它只会添加列。很酷(从我们的高级DBA那里得到一些支持)谢谢Remus,我将向项目团队提出这个选项。嗨,Remus,根据本文,事务复制确实将此列添加到表中:在这个常见问题解答中也提到了它。请参阅题为“为什么复制会向复制表添加列”的问题;如果表未发布,它是否会被删除?嗯,在进一步调查之后,如果您希望订阅者更新数据(我们没有),它只会添加列。酷(得到高级DBA的支持)