使用慢速连接

时间:2016-02-10 07:46:44

标签: sql sql-server merge sql-merge

我有两个(链接的)Microsoft SQL服务器,它们的设置基本相同,但内容不同。 与服务器的连接速度很慢。有些表包含很多行。有些记录在字段上有所不同。每台服务器上的数据匹配99%

我需要将数据从一台服务器合并到另一台服务器,并且流量转移最少

例如:

SERV1.DB1.dbo.Table:
| fname       | count |
----------------------
| 'file1.txt' | 10    |
| 'file2.txt' | 5     |
| 'file3.txt' | 35    |


SERV2.DB2.dbo.Table:
| fname       | count |
----------------------
| 'file1.txt' | 40    |
| 'file2.txt' | 150   |

And I want to update SERV2.DB2.dbo.Table to:

| fname       | count |
----------------------
| 'file1.txt' | 10    |
| 'file2.txt' | 5     |
| 'file3.txt' | 35    |

我可以:

  1. 删除SERV2.DB2.dbo.Table并从备份SERV1.DB1.dbo.Table恢复到SERV2
  2. 加:简单

    减:大数据库的速度很慢

    1. 使用JOIN \ UPDATE \ INSERT或MERGE \ UPDATE \ INSERT结构以及每个字段的营销
    2. 加:简单

      减:大桌子慢了

      减:大量数据传输

      1. 使用所有字段在每行上添加和计算HASH列,然后使用MERGE \ UPDATE \ INSERT仅更新差异行
      2. Plus:仅传输所有行的哈希值以及用于更新的行

        减:改变表格

        减:计算

        减:为很多桌子做了更多的工作

        1. 使用tablediff实用程序
        2. 加\减:???在这种情况下是否有用?它是如何与慢速连接一起工作的?

          是否有更多有用的方法可以将数据从一台服务器合并到另一台服务器,并且流量转移最少?

          UPD :缓慢的连接渠道是优化流量的原因。对于具有大量记录的表,比较两个表中的每个记录或复制全表\数据库将花费大量时间。

0 个答案:

没有答案