SqlConnection.PacketSize 属性

定义

获取用于与 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。 它在控制台窗口中显示 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

注解

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

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

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

适用于

另请参阅