SqlConnection.PacketSize SqlConnection.PacketSize SqlConnection.PacketSize SqlConnection.PacketSize Property

定義

SQL Server のインスタンスと通信するために使用するネットワーク パケットのサイズ (バイト単位) を取得します。Gets the size (in bytes) of network packets used to communicate with an instance of SQL Server.

public:
 property int PacketSize { int get(); };
[System.Data.DataSysDescription("SqlConnection_PacketSize")]
public int PacketSize { get; }
member this.PacketSize : int
Public ReadOnly Property PacketSize As Integer

プロパティ値

ネットワーク パケットのサイズ (バイト単位)。The size (in bytes) of network packets. 既定値は 8000 です。The default value is 8000.

次の例ではSqlConnection、接続文字列でPacket Sizeを512に設定するなど、を作成します。The following example creates a SqlConnection, including setting the Packet Size to 512 in the connection string. プロパティPacketSizeServerVersionプロパティがコンソールウィンドウに表示されます。It displays the PacketSize and ServerVersion properties in the console window.

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

注釈

アプリケーションで一括コピー操作を実行したり、大量のテキストやイメージデータを送受信したりすると、ネットワークの読み取りおよび書き込み操作が減少するため、既定値より大きいパケットサイズで効率が向上する可能性があります。If an application performs bulk copy operations, or sends or receives lots of text or image data, a packet size larger than the default may improve efficiency because it causes fewer network read and write operations. アプリケーションが送受信する情報の量が少ない場合は、パケットサイズを512バイト (のConnectionStringパケットサイズの値を使用) に設定できます。これは、ほとんどのデータ転送操作に十分です。If an application sends and receives small amounts of information, you can set the packet size to 512 bytes (using the Packet Size value in the ConnectionString), which is sufficient for most data transfer operations. 多くのアプリケーションでは、既定のパケット サイズが最適です。For most applications, the default packet size is best.

PacketSize512 ~ 32767 バイトの範囲の値を指定できます。PacketSize may be a value in the range of 512 and 32767 bytes. 値がこの範囲外の場合は、例外が生成されます。An exception is generated if the value is outside this range.

既定値を8000より大きい数値に設定すると、パケットでは、より効率的な1ページアロケーターではなく、SQL Server のインスタンスでマルチページアロケーターが使用され、SQL Server の全体的なスケーラビリティが低下します。Setting the default value to a number greater than 8000 will cause the packets to use the MultiPage allocator on the instance of SQL Server instead of the much more efficient SinglePage allocator, reducing the overall scalability of the SQL Server. SQL Server によるメモリの使用方法の詳細については、「メモリ管理アーキテクチャガイド」を参照してください。For more information on how SQL Server uses memory, see Memory Management Architecture Guide.

適用対象

こちらもご覧ください