在服务器a上运行的存储过程中,将服务器B上的表联接到服务器a上的表还是联接到服务器B上相同的表更快



我正在SQL Server中构建一个用于报告目的的数据存储数据库。让我们把这个服务器称为A。我正在创建脚本,从几个链接的服务器(B和C(中提取必要的数据。我正在努力让他们尽可能地表演。

我有一个脚本,它使用具有许多联接的复杂查询来提取数据,但都来自服务器B上的表。我已经从以前的加载脚本中获得了服务器a上这些联接所需的一些数据。

所以我的问题是——哪个更快:

  1. 将服务器B上的表连接到服务器A上具有所需数据的表
  2. 只需在服务器B上执行所有联接

我认为数字2会更快,但我知道通过链接服务器在网络上做事更慢,所以我不确定。

远程联接通常比本地联接慢。所以你应该尽量只在一个地方连接表。

为了连接B上的所有表并将结果返回给A;通过";使用OPENQUERY或EXEC(@sql) at B对B进行查询。