通过内存变量在不同服务器上“加入2个表”

时间:2014-01-15 01:19:44

标签: c# sql sql-server database

如上所述here,在不同服务器上连接两个表是否需要链接服务器? DBA组控制这些服务器对象,并且他们不希望创建过多的链接服务器。

通过先将一个表作为变量读入内存并在另一个服务器上使用第一个变量运行另一个查询,可以“加入”不同服务器上的两个表吗?

使用C#访问SQL服务器SERVER_A,然后从表TABLE_A获取所有记录,我们将其保存到集合变量,例如VARIABLE_A
然后我们可以连接到SQL服务器SERVER_B,使用此变量TABLE_BVARIABLE_A上运行选择查询,并尝试获取TABLE_ATABLE_B的联接结果

此解决方案是否会实现所需的结果(即功能,而不需要其他链接服务器)?

1 个答案:

答案 0 :(得分:2)

内存中的连接(来自应用程序)是一个可怕的想法。它需要(充其量)读取整个表,或者(最坏的情况下)从第二个服务器读取第一个返回的每一行。

这两种方法都会增加内存开销,应用程序复杂性和网络使用率。

链接服务器选项将是我的first choice

second choice将使用复制并将第二个服务器的数据库复制到第一个服务器。然后,您可以在数据库之间进行服务器内连接。