什么是最快的SQL Server连接协议?
相关问题:哪些协议适用于远程或本地,这会影响最快协议的选择吗?
什么是最快的SQL Server连接协议?
相关问题:哪些协议适用于远程或本地,这会影响最快协议的选择吗?
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持有不同观点的地方。
共享内存对于本地(客户端和服务器在同一台机器上)是最快的。 命名管道可能是本地第二快的。 对于远程连接,每个人都使用TCP-IP,其余协议正在逐渐成为网络历史。
在安装 SQL Server 时选择的网络库会影响服务器与客户端之间的通信速度。在三个关键的网络库中,TCP/IP 是最快的,而多协议则是最慢的。由于速度优势,您将希望在服务器和客户端上都使用 TCP/IP。此外,不要在服务器上安装未使用的网络库,因为它们只会增加不必要的开销。
命名管道是最快的SQL Server协议。