SqlConnection.PacketSize Proprietà

Definizione

Ottiene le dimensioni in byte dei pacchetti di rete usati per comunicare con un'istanza di SQL Server.

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

Valore della proprietà

Dimensione in byte dei pacchetti di rete. Il valore predefinito è 8000.

Attributi

Esempio

Nell'esempio seguente viene creato un SqlConnectionoggetto , inclusa l'impostazione su Packet Size 512 nella stringa di connessione. Visualizza le PacketSize proprietà e ServerVersion nella finestra della console.

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

Commenti

Se un'applicazione esegue operazioni di copia bulk o invia o riceve un sacco di dati di testo o immagine, una dimensione del pacchetto maggiore del valore predefinito può migliorare l'efficienza perché causa un minor numero di operazioni di lettura e scrittura di rete. Se un'applicazione invia e riceve piccole quantità di informazioni, è possibile impostare le dimensioni del pacchetto su 512 byte (usando il valore Dimensioni pacchetti in ConnectionString), che è sufficiente per la maggior parte delle operazioni di trasferimento dei dati. Per la maggior parte delle applicazioni, le dimensioni predefinite risultano ottimali.

PacketSize può essere un valore nell'intervallo di 512 e 32767 byte. Viene generata un'eccezione se il valore non è compreso in questo intervallo.

L'impostazione del valore predefinito su un numero maggiore di 8000 causerà che i pacchetti usino l'allocatore MultiPage nell'istanza di SQL Server anziché l'allocatore SinglePage molto più efficiente, riducendo la scalabilità complessiva del SQL Server. Per altre informazioni su come SQL Server usa la memoria, vedere Guida all'architettura di gestione della memoria.

Si applica a

Vedi anche