SQL Server中使用链接服务器的缺点是什么?

12

是否存在任何严重的性能问题或安全隐患?

使用SQL Server 2005及更高版本

3个回答

14
  • 服务器迁移更加复杂
  • 对于多跳连接,安全设置可能会很棘手
  • 非SQL Server需要本地安装驱动程序(如Sybase、DB2等)
  • 集群、离线DR:需要注册表项+驱动程序
  • 非SQL Server x64的问题。言归正传
  • 非SQL Server不太兼容(要输入密码的地方有多少个?)
  • 性能(其他答案中提到)

我已经建立了与Access、DB2、Oracle、Sybase和一些专有ODBC驱动程序的链接服务器。现在我更喜欢使用SSIS或.net代码...


9

是的 - 在不同物理数据库中连接两个数据集的查询执行效率较低。

例如,如果您在当前服务器上运行一个查询,在链接服务器上连接表A和B。

 Select A.Field1, B.Field2 FROM A INNER JOIN B on A.Id = B.Id
 WHERE B.Id = @InputId

您可能会发现,所有表B的记录都被检索出来了-实际上。
 Select * from Table B

进入工作服务器。

相反,您应该在链接的服务器上有一个带有Id参数并返回来自Table B的过滤记录集的usp。

然后将上面的查询重写为将Table A连接到usp。


1
非常感谢您提供这个非常有用的信息和解决方法。 - Gabe
@BonyT- 抱歉,什么是 usp,我没明白? - userx
@userx - 用户自定义存储过程。 - BonyT

5
在服务器上设置一个或多个并不是问题,性能损失将在实际查询时产生。
我有一个已设置好的链接SQLServer 2005,它位于同一物理建筑(同一网络)中,速度非常快。
我还有另一个链接的(Oracle)服务器,它在世界的另一端,像穿过糖浆一样缓慢,并超时,断开连接(参见这里!)
抱歉表述含糊,但...这取决于情况!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接