从同一 LAN 中不同服务器上的 .NET 4 客户端应用程序连接到 SQL Server 2008 R2 时,可以设置三种不同的网络协议:
什么是最佳实践?选择什么?
附加信息:TCP 和命名管道在服务器和客户端上均已启用。该应用程序正在使用数据库镜像。客户端和服务器通过快速 LAN 进行通信。
我们正在对此进行调查,因为我们遇到了罕见的虚假连接和超时问题。(但无论如何我都想知道最佳实践)。
与命名管道相比,我更喜欢 TCP/IP,尽管在大多数情况下两者没有明显区别。您可以通过在 SQL Server 配置管理器中调整实例支持的协议来实现此目的,而不是在连接字符串中进行硬编码(这样可以更轻松地进行更改或进行故障排除)。
本质上,命名管道涉及的路由和其他开销(除非您的应用程序与 SQL Server 在同一台计算机上,在这种情况下只会有一点点额外开销)使其成为效率较低的选项,尤其是在较慢的网络环境中(100MB 或更少),或者如果您的工作负载突然出现。
如果您的应用程序与SQL Server 在同一个机器上,您还应该牢记共享内存——如果您在 SQL Server 机器上有应用程序直接与 SQL Server 通信,这将是最有效的选择。