SqlConnection.PacketSize 属性

定义

获取用于与SQL Server实例通信的网络数据包的大小(以字节为单位)。

public:
 property int PacketSize { int get(); };
[System.Data.DataSysDescription("SqlConnection_PacketSize")]
public int PacketSize { get; }
public int PacketSize { get; }
[<System.Data.DataSysDescription("SqlConnection_PacketSize")>]
member this.PacketSize : int
member this.PacketSize : int
Public ReadOnly Property PacketSize As Integer

属性值

网络数据包的大小(以字节为单位)。 默认值为 8000。

属性

示例

以下示例创建一个 SqlConnection,包括在连接字符串中将 Packet Size 设置为 512。 它在控制台窗口中显示 PacketSizeServerVersion 属性。

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

注解

如果应用程序执行大容量复制操作或发送或接收大量文本或图像数据,则大于默认值的数据包大小可能会提高效率,因为它会导致网络读取和写入操作更少。 如果应用程序发送和接收少量的信息,可以将数据包大小设置为 512 字节(使用中的 ConnectionString数据包大小值),这足以用于大多数数据传输操作。 对于大多数应用程序而言,默认数据包大小为最佳数值。

PacketSize 可以是 512 和 32767 字节范围内的值。 如果值超出此范围,则会生成异常。

将默认值设置为大于 8000 的数字将导致数据包在 SQL Server 实例上使用 MultiPage 分配器,而不是更高效的 SinglePage 分配器,从而减少SQL Server的整体可伸缩性。 有关如何SQL Server使用内存的详细信息,请参阅 Memory 管理体系结构指南

适用于

另请参阅