SqlConnection.PacketSize プロパティ

定義

SQL Server のインスタンスと通信するために使用するネットワーク パケットのサイズ (バイト単位) を取得します。

public:
 property int PacketSize { int get(); };
public int PacketSize { get; }
member this.PacketSize : int
Public ReadOnly Property PacketSize As Integer

プロパティ値

ネットワーク パケットのサイズ (バイト単位)。 既定値は 8000 です。

次の例では、 を SqlConnection接続文字列で 512 に設定 Packet Size するなど、 を作成します。 コンソール ウィンドウに 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";
    }
}

注釈

アプリケーションが一括コピー操作を実行する場合、または大量のテキストまたはイメージ データを送受信する場合、パケット サイズが既定よりも大きくなると、ネットワークの読み取りと書き込みの操作が少なくなるため、効率が向上する可能性があります。 アプリケーションが少量の情報を送受信する場合は、パケット サイズを 512 バイトに設定できます (のパケット サイズ値を ConnectionString使用)。 これは、ほとんどのデータ転送操作に十分です。 多くのアプリケーションでは、既定のパケット サイズが最適です。

PacketSize には、512 バイトと 32767 バイトの範囲の値を指定できます。 値がこの範囲外の場合、例外が生成されます。

既定値を 8000 より大きい値に設定すると、パケットは、はるかに効率的な SinglePage アロケーターではなく、SQL Server のインスタンスで MultiPage アロケーターを使用するため、SQL Serverの全体的なスケーラビリティが低下します。 SQL Serverでメモリを使用する方法の詳細については、「メモリ管理アーキテクチャ ガイド」を参照してください。

適用対象