Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过内存变量在不同服务器上“连接2个表”_C#_Sql_Sql Server_Database - Fatal编程技术网

C# 通过内存变量在不同服务器上“连接2个表”

C# 通过内存变量在不同服务器上“连接2个表”,c#,sql,sql-server,database,C#,Sql,Sql Server,Database,如前所述,连接不同服务器上的两个表是否需要链接服务器?DBA组控制这些服务器对象,它们不希望创建过多的链接服务器 通过先将一个表作为变量读入内存,然后在另一台服务器上使用第一个表中的变量运行另一个查询,连接不同服务器上的两个表是否好 使用C访问SQL server_A,然后从表_A获取所有记录,我们将其保存到一个集合变量,比如变量_A。 然后,我们可以连接到SQL server_B,使用这个变量_a对表_B运行select查询,并尝试获取表_a和表_B的联接结果 此解决方案是否能够实现预期的功能

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

通过先将一个表作为变量读入内存,然后在另一台服务器上使用第一个表中的变量运行另一个查询,连接不同服务器上的两个表是否好

使用C访问SQL server_A,然后从表_A获取所有记录,我们将其保存到一个集合变量,比如变量_A。 然后,我们可以连接到SQL server_B,使用这个变量_a对表_B运行select查询,并尝试获取表_a和表_B的联接结果


此解决方案是否能够实现预期的功能性结果,而不需要额外的链接服务器?

来自应用程序的内存连接是一个糟糕的想法。它最多需要读取整个表,最坏情况下需要从第二台服务器读取从第一台服务器返回的每一行

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

链接服务器选项将是我的首选


另一个遥远的选择是使用复制并将第二台服务器的数据库复制到第一台服务器。然后,您可以在数据库之间进行服务器内联接。

您可以使用在不同服务器上的不同dbs中跨表联接,而不需要临时变量。DBA用于支持编程工作。虽然他们可能有充分的理由在创建链接服务器连接时设置一些障碍,但他们的最终答案必须是为了公司/项目的利益。把你的想法集中起来,清楚地向他们展示你的论点。不,内存中的连接是一个糟糕的主意。简单的回答是,你不能使用变量a对表B运行select查询。你平均需要从表B中拉出多少行?表a和表B的大小约为100K条记录。谢谢。我会再来问DBA的!