SQL Server通信协议

  SQL Server 2008客户端连接服务器端的通讯协议有:Shared memory(共享内存)、Named Pipes(命名管道)、TCP/IP、VIA。微软官方建议:不推荐使用 VIA 协议,后续版本的 Microsoft SQL Server 将删除该功能。

  共享内存: 不同的进程可以读取物理内存中同一块数据,是一种最高效的数据交换方法。在启用了Shared Memory 协议时,SQL Server 始终首先尝试使用该协议

  命名管道: Named Pipes 是为局域网而开发的协议。管道即内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。它屏蔽了底层的网络协议细节,所以在不了解网络协议的情况下,也可以利用命名管道来实现进程间的通信。创建管道的进程称为管道服务器,连接到一个管道的进程称为管道客户机。一个命名管道的所有实例共享同一个管道名,但是每一个实例均拥有独立的缓存与句柄,并且为客户——服务通信提供一个分离的管道,实例的使用保证了多个管道客户能够在同一时间使用同一个命名管道。

但命名管道在慢速网络中可能花费非常多并导致过多的网络流量,其它的网络客户端反过来也会受到影响。 

  TCP/IP 在快速局域网  (LAN)  环境中,和命名管道客户端在性能方面不相上下。TCP/IP 套接字还支持积压队列。试图连接到 SQL Server 时,与可能导致管道忙错误的 Named Pipes 相比,该队列可以带来有限的平稳效果。

  通常,TCP/IP 在慢速 LAN、WAN 或拨号网络中效果较好。而当网络速度不成问题时,Named Pipes 则是更好的选择,因为其功能更强、更易于使用并具有更多的配置选项。如果服务器关闭了TCP/IP协议而仅启用命名管道,还可以避免一些安全隐患。

使用如下SQL语句可以查看当前C/S通讯所使用的协议:

SELECT net_transport FROM sys.dm_exec_connections WHERE session_id = @@SPID;

  此外,对于客户端的命名管道和TCP/IP协议,还可以指定别名以在应用程序的连接字符串中隐藏真实数据库。还可以调整协议的使用优先级(Shared Memory除外)。

转载于:https://www.cnblogs.com/reveyjay/archive/2012/02/12/2348015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值