最快的SQL Server协议是什么?

13

什么是最快的SQL Server连接协议?

相关问题:哪些协议适用于远程或本地,这会影响最快协议的选择吗?


请参阅什么是命名管道? - Vadzim
4个回答

21

VIA是最快的SQL协议,它在专用硬件上运行,并用于执行SQL Server基准测试记录。

请注意,Microsoft已弃用VIA协议,并将在未来版本中删除它。不过,它仍受到SQL Server 2008、SQL Server 2008 R2和SQL Server 2012的支持。

共享内存是性能次优的选择,但它只适用于可以实际共享内存的客户端和服务器之间,因此仅限于本地使用。

对于普通硬件上的远程连接,TCP是首选方式。在正常操作下,它的性能与命名管道相同。在慢速或繁忙的网络上,它比NP更具有鲁棒性和速度优势,这个事实在MSDN文档中有所体现:

对于命名管道,网络通信通常更加交互式。一个对等方直到另一个对等方使用读命令请求数据才会发送数据。网络读通常涉及一系列的peek named pipes消息,然后才开始读取数据。这些在慢速网络中可能非常昂贵,并导致过多的网络流量,从而影响其他网络客户端。

命名管道也可能导致客户端连接超时:

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

不幸的是,默认的客户端配置首先尝试NP,这可能会导致连接问题(由于上述原因)。强制在客户端网络配置中使用TCP(或在连接字符串中使用tcp:servername)会跳过NP连接尝试,并直接转向TCP以获得更好的负载体验。

现在可以确定的是,我上面引用的同样的链接继续赞扬NP的易于配置,很可能是指不需要在防火墙中打开SQL TCP端口,但这就是我和BOL持有不同观点的地方。


3
仅当您从Windows 2000或更早版本的MDAC进行升级时,才会首先安装NP。干净的XP安装则具有tcp优先。 - gbn
有没有这方面的资料?特别是共享内存是最快的(我显然可以理解为什么它会是)。 - PeterX

7

3
我理解你所说的本地是指“在同一台计算机上运行”,而不是本地网络,因为这就是共享内存的工作方式。 - ichiban
根据上述内容,你有支持这一说法的来源吗?(我能理解为什么会这样)。 - PeterX
根据stackoverflow上其他问题的回答,命名管道和TCP-IP(在同一台机器上)的速度似乎差不多。https://dev59.com/pGgv5IYBdhLWcg3wDsrZ - MatthewMartin
抱歉,我特别指的是共享内存。 - PeterX

-2

使用共享内存协议

在安装 SQL Server 时选择的网络库会影响服务器与客户端之间的通信速度。在三个关键的网络库中,TCP/IP 是最快的,而多协议则是最慢的。由于速度优势,您将希望在服务器和客户端上都使用 TCP/IP。此外,不要在服务器上安装未使用的网络库,因为它们只会增加不必要的开销。


-3

命名管道是最快的SQL Server协议。


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