我昨天注意到,在.NET的
对于
“网络数据包的大小(以字节为单位)。默认值为8000。”
在该文章的早期版本中,它提到(一直到.NET 1.1)默认值为8192字节。然而,对于SQL Server(根据此链接):
“默认数据包大小为4,096字节。”
从那篇文章中可以看出,这至少是自SQL Server 2005以来的默认设置。有人知道它们之间差异的原因吗?
SqlConnection
类和SQL Server本身中,默认的网络数据包大小有明显的差异。对于
SqlConnection
类的PacketSize
属性,根据此链接:“网络数据包的大小(以字节为单位)。默认值为8000。”
在该文章的早期版本中,它提到(一直到.NET 1.1)默认值为8192字节。然而,对于SQL Server(根据此链接):
“默认数据包大小为4,096字节。”
从那篇文章中可以看出,这至少是自SQL Server 2005以来的默认设置。有人知道它们之间差异的原因吗?
更新:为了增加这个问题的趣味性,我与 SQL MVP(Thomas LaRock)进行了交谈,他提到在 SQL Server 2000 中,默认的网络数据包大小实际上是8192字节(就像 .NET 1.1!)。但是由于它引起了太多的碎片化,需要每周重新启动服务器,因此后来的版本中进行了更改。
那么为什么 SQL Server 把它减少了一半,而 .NET 只减少了 192 字节?是否有某些原因强制要求 SQL Server 仅使用这个数字的倍数?