SqlConnection.PacketSize 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得用於與 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 連接字串。 它會在主控台視窗顯示 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
備註
若應用程式執行大量複製操作,或傳送/接收大量文字或影像資料,封包大小大於預設值可能提升效率,因為這減少了網路的讀寫操作次數。 如果應用程式傳送和接收的資訊量很小,你可以將封包大小設定為 512 位元組(使用封 ConnectionString包大小值),這對大多數資料傳輸操作來說已經足夠。 對於大部分應用程式而言,預設封包大小是最適當的大小。
PacketSize 可能的值介於 512 到 32767 位元組之間。 若值超出此範圍,則會產生例外。
將預設值設為大於 8000 時,封包會在 SQL Server 實例中使用多頁配置器,而非更有效率的單頁配置器,降低 SQL Server 的整體可擴展性。 欲了解更多關於 SQL Server 如何使用記憶體的資訊,請參見 記憶體管理架構指南。