SqlConnection.PacketSize 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取用于与 SQL Server 的实例进行通信的网络数据包的大小(以字节为单位)。
public:
property int PacketSize { int get(); };
public int PacketSize { get; }
[System.Data.DataSysDescription("SqlConnection_PacketSize")]
public int PacketSize { get; }
member this.PacketSize : int
[<System.Data.DataSysDescription("SqlConnection_PacketSize")>]
member this.PacketSize : int
Public ReadOnly Property PacketSize As Integer
属性值
网络数据包的大小(以字节为单位)。 默认值为 8000。
- 属性
示例
以下示例创建一个 SqlConnection,包括在 连接字符串中将 设置为 Packet Size
512。 它在控制台窗口中显示 PacketSize 和 ServerVersion 属性。
private static void OpenSqlConnection()
{
string connectionString = GetConnectionString();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
Console.WriteLine("PacketSize: {0}", connection.PacketSize);
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file, using the
// System.Configuration.ConfigurationSettings.AppSettings property
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;Packet Size=512";
}
Private Sub OpenSqlConnection()
Dim connectionString As String = GetConnectionString()
Using connection As New SqlConnection(connectionString)
connection.Open()
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
Console.WriteLine("PacketSize: {0}", connection.PacketSize)
End Using
End Sub
Private Function GetConnectionString() As String
' To avoid storing the connection string in your code,
' you can retrieve it from a configuration file, using the
' System.Configuration.ConfigurationSettings.AppSettings property
Return "Data Source=(local);Database=AdventureWorks;" _
& "Integrated Security=SSPI;Packet Size=512;"
End Function
注解
如果应用程序执行大容量复制操作,或者发送或接收大量文本或图像数据,则大于默认值的数据包大小可能会提高效率,因为它会导致更少的网络读取和写入操作。 如果应用程序发送和接收少量信息,则可以使用 () 中的 ConnectionString “数据包大小”值将数据包大小设置为 512 字节,这足以执行大多数数据传输操作。 对于大多数应用程序而言,默认数据包大小为最佳数值。
PacketSize 可以是 512 字节和 32767 字节范围内的值。 如果值超出此范围,则会生成异常。
将默认值设置为大于 8000 的数字将导致数据包在 SQL Server 实例上使用 MultiPage 分配器而不是更高效的 SinglePage 分配器,从而降低SQL Server的整体可伸缩性。 有关SQL Server如何使用内存的详细信息,请参阅内存管理体系结构指南。
适用于
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈