如上所述here,在不同服务器上连接两个表是否需要链接服务器? DBA组控制这些服务器对象,并且他们不希望创建过多的链接服务器。
通过先将一个表作为变量读入内存并在另一个服务器上使用第一个变量运行另一个查询,可以“加入”不同服务器上的两个表吗?
使用C#访问SQL服务器SERVER_A
,然后从表TABLE_A
获取所有记录,我们将其保存到集合变量,例如VARIABLE_A
。
然后我们可以连接到SQL服务器SERVER_B
,使用此变量TABLE_B
在VARIABLE_A
上运行选择查询,并尝试获取TABLE_A
和TABLE_B
的联接结果
此解决方案是否会实现所需的结果(即功能,而不需要其他链接服务器)?
答案 0 :(得分:2)
内存中的连接(来自应用程序)是一个可怕的想法。它需要(充其量)读取整个表,或者(最坏的情况下)从第二个服务器读取第一个返回的每一行。
这两种方法都会增加内存开销,应用程序复杂性和网络使用率。
链接服务器选项将是我的first choice
。
远远second choice
将使用复制并将第二个服务器的数据库复制到第一个服务器。然后,您可以在数据库之间进行服务器内连接。