如何强制链接的 SQL Server 使用 TCP/IP 而不是命名管道?

如何强制链接的 SQL Server 使用 TCP/IP 而不是命名管道?

我有一个 SQL Server 实例,Instance1它有一个链接的 SQL Server,。Instance2链接服务器在技术上是可以工作的,但我确信它通过命名管道Instance1连接到Instance2。通过使用 TCP/IP 和命名管道测试示例查询,我可以非常清楚地看到这一点。查询运行时间在以下两个方面有所不同:<1TCP/IP 第二>45命名管道的秒数。

我可以强制链接的 SQL ServerInstance1在连接到时使用 TCP/IPInstance2吗?我找不到与此相关的任何信息,如果无法做到这一点,我还有其他选择吗?

我尝试通过指定端口来创建链接服务器,但它似乎还是使用命名管道,即我将其创建为Instance2,1433。有没有办法告诉master数据库对链接服务器使用 TCP/IP?

任何帮助都将不胜感激。我希望答案不是“在 SQL 配置中关闭命名管道Instance2”,尽管我意识到如果我无法让这个工作,我可能必须这样做。

编辑:我毫无疑问地证实了是命名管道导致了这个问题,而且我以前也见过命名管道有同样的问题(这是有据可查的行为命名管道)。我只是还没有看到在使用链接服务器时如何解决这个问题。

答案1

我成功尝试了连接字符串强制协议的方法: Data Source=protocol:servername, portnumber;

例子:

EXEC master.dbo.sp_addlinkedserver @server = N'DB_OBRA', @srvproduct=N'sql_server', @provider=N'SQLNCLI11', @datasrc=N'tcp:10.0.34.33'

相关内容