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 です。

属性

次の例では、接続文字列で Packet Size を 512 に設定するなど、SqlConnectionを作成します。 コンソール ウィンドウに 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 より大きい値に設定すると、パケットは、より効率的な SinglePage アロケーターではなく、SQL Serverのインスタンスで MultiPage アロケーターを使用するため、SQL Serverの全体的なスケーラビリティが低下します。 SQL Serverがメモリを使用する方法の詳細については、「Memory 管理アーキテクチャ ガイドを参照してください。

適用対象

こちらもご覧ください