选择网络协议

若要连接到 SQL Server 数据库引擎,必须启用网络协议。 Microsoft SQL Server 可以同时处理多个协议上的请求。 客户端使用单个协议连接到 SQL Server。 如果客户端程序不知道正在侦听哪个协议 SQL Server,请将客户端配置为按顺序尝试多个协议。 使用 SQL Server Configuration Manager 启用、禁用和配置网络协议。

共享内存

Shared Memory 是可供使用的最简单协议,没有可配置的设置。 由于使用共享内存协议的客户端只能连接到在同一台计算机上运行的 SQL Server 实例,因此对大多数数据库活动都无效。 如果怀疑其他协议配置有误,请使用 Shared Memory 协议进行故障排除。

注释

使用 MDAC 2.8 或更早版本的客户端无法使用共享内存协议。 如果这些客户端尝试这样做,它们将自动切换到命名管道协议。

TCP/IP

TCP/IP 是一种通过 Internet 广泛使用的通用协议。 它跨具有不同硬件体系结构和各种作系统的计算机互连网络进行通信。 TCP/IP 包括路由网络流量的标准,并提供高级安全功能。 它是当今在业务中使用的最常用协议。 将计算机配置为使用 TCP/IP 可能很复杂,但大多数网络计算机已正确配置。 若要配置 SQL Server Configuration Manager 中未公开的 TCP/IP 设置,请参阅 Microsoft Windows 文档。

命名管道

命名管道协议是为局域网开发的。 内存的一部分由一个进程用来将信息传递给另一个进程,以便其中一个进程的输出是另一个进程的输入。 第二个进程可以是本地(与第一台计算机相同)或远程(在联网计算机上)。

命名管道与 TCP/IP 套接字比较

在快速局域网(LAN)环境中,传输控制协议/互联网协议(TCP/IP)套接字客户端和命名管道客户端在性能方面相当。 但是,TCP/IP 套接字和命名管道客户端之间的性能差异在网络速度较慢时(例如在跨广域网(WAN)或拨号网络中)会变得明显。 这是因为进程间通信(IPC)机制在对等之间通信的方式不同。

对于命名管道,网络通信通常更具交互性。 在另一对等方使用读取命令请求数据之前,对等方不会发送数据。 网络读取通常涉及一系列窥视命名管道的消息,然后才开始读取数据。 在缓慢的网络中,这些成本可能非常昂贵,并导致过多的网络流量,这反过来又会影响其他网络客户端。

此外,还必须澄清你是否谈论的是本地管道或网络管道。 如果服务器应用程序在本地运行 SQL Server 实例的计算机上运行,则本地命名管道协议是一个选项。 本地命名管道在内核模式下运行,速度非常快。

对于 TCP/IP 套接字,数据传输更为简化,且开销较低。 数据传输还可以利用 TCP/IP 套接字性能增强机制,例如开窗、延迟确认等。 这在慢速网络中非常有用。 根据应用程序类型,此类性能差异可能很大。

TCP/IP 套接字还支持后备队列。 与尝试连接到 SQL Server 时可能导致管道繁忙错误的命名管道相比,这可以提供有限的平滑效果。

通常,TCP/IP 在较慢的 LAN、WAN 或拨号网络中是首选的,而在网络速度不是问题时,命名管道可能是更好的选择,因为它提供了更多功能、易用性和配置选项。

启用协议

必须在客户端和服务器上启用该协议才能正常工作。 服务器可以同时侦听所有已启用协议的请求。 客户端计算机可以选取一个,或按 SQL Server Configuration Manager 中列出的顺序尝试协议。

有关如何配置协议并连接到数据库引擎的简短教程,请参阅 教程:数据库引擎入门