SQL Server 2008 运行并行查询时出现间歇性错误 40

SQL Server 2008 运行并行查询时出现间歇性错误 40

这是我们的设置:

我们正在使用Red Gate SQL 多脚本在单个 SQL Server 2008 上的大约 1000 个数据库上运行查询。SQL Multi Script 可以配置为同时在多个数据库上并行运行查询,从而加快了这些数据库的执行速度。我们希望尽可能快地运行查询,因此我们制作了 Multi Script 来运行 25 个并行连接(Multi Script 允许的最大值)。SQL Multi Script 在台式计算机(Windows 7)上运行,并通过其主机名(myserver.mycompany.com)直接使用“sa”登录连接到 SQL Server 2008。我们的 SQL Server 2008 不是命名实例,因此我们不使用 \instancename 引用它。

问题如下:

对于相同的查询、相同的服务器、相同的数据库、相同的并行性(一遍又一遍地运行相同的操作,有时会导致一些错误,有时不会),我们有时会在 1000 个数据库中的几个数据库出现以下错误:

“消息 1214,级别 20,状态 0,行 0 与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)”

还有一件事,如果我们降低多脚本中的并行连接数,这些错误似乎就会消失,但是因为我们希望获得最大的性能,所以我们希望提高最大并行连接数。

我还发现此主题在 Red Gate 论坛上,但这并没有多大帮助

更新:

我更改了连接属性中的设置以仅使用 TCP/IP,而现在我得到的是不同的错误:

“消息 10048,级别 20,状态 0,行 0 与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:TCP 提供程序,错误:0 - 通常只允许使用每个套接字地址(协议/网络地址/端口)一次。)”

有人知道为什么会发生这种情况吗?

答案1

我会尝试仅使用 TCP/IP,而不使用命名管道。

相关内容