Microsoft SQL Server 使用 network packet size 选项可以设置整个网络中使用的数据包大小(以字节为单位)。数据包是具有固定大小的数据块区,用于在客户端与服务器之间传输请求和结果。Microsoft SQL Server 设置的默认数据包大小为 4,096 字节。应用程序进行大容量复制操作,或者发送或接收大量文本 或图像 数据时,数据包大小大于默认值可以提高效率,因为这样可以减少网络读写操作。 客户端应用程序可以覆盖此值。
Sql server 网络设置影响下行数据的发送,设为 8192 时,通过拦截网络数据包,可以看到下行数据的 TCP 包可以 8000 字节。但是 客户端上行固定为 1460 的默认 MTU 大小,没法改变。 测试结果如下。
| Sql server 4k | Sql server 8k |
Client 4k | 1460/4000 | 1460/8000 |
Client 8k | 1460/8000 | 1460/8000 |
经过测试,修改两个测试机的 MTU 值为 3000 ,对此结果没有影响。
SQL SERVER 服务器设置方法:
EXEC sys . sp_configure N'network packet size (B)' , N'8192'
GO
RECONFIGURE WITH OVERRIDE
GO
http://msdn.microsoft.com/zh-cn/developercenters/ms187866.aspx
客户端ADO连接字符串配置中加入:Packet Size=8192