SqlConnection.PacketSize 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取用于与 SQL Server 的实例进行通信的网络数据包的大小(以字节为单位)。
public:
property int PacketSize { int get(); };
public int PacketSize { get; }
member this.PacketSize : int
Public ReadOnly Property PacketSize As Integer
属性值
网络数据包的大小(以字节为单位)。 默认值为 8000。
示例
以下示例创建 , SqlConnection包括在连接字符串中将 设置为 Packet Size
512。 它在控制台窗口中显示 PacketSize 和 ServerVersion 属性。
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
OpenSqlConnection();
Console.ReadLine();
}
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";
}
}
注解
如果应用程序执行大容量复制操作,或者发送或接收大量文本或图像数据,则大于默认值的数据包大小可能会提高效率,因为它会导致更少的网络读取和写入操作。 如果应用程序发送和接收少量信息,可以使用 () 中的 ConnectionString “数据包大小”值将数据包大小设置为 512 字节,这足以执行大多数数据传输操作。 对于大多数应用程序而言,默认数据包大小为最佳数值。
PacketSize 可以是 512 字节和 32767 字节范围内的值。 如果值超出此范围,将生成异常。
将默认值设置为大于 8000 的数字将导致数据包在 SQL Server 实例上使用 MultiPage 分配器,而不是更高效的 SinglePage 分配器,从而降低SQL Server的整体可伸缩性。 有关 SQL Server 如何使用内存的详细信息,请参阅内存管理体系结构指南。