Condividi tramite


Configurazione del server: dimensioni dei pacchetti di rete

Si applica a: SQL Server

Questo articolo descrive come configurare l'opzione di configurazione del network packet size server in SQL Server usando SQL Server Management Studio o Transact-SQL. L'opzione network packet size imposta le dimensioni del pacchetto (in byte) usate nell'intera rete. I pacchetti sono i blocchi di dati di dimensioni fisse utilizzati per il trasferimento delle richieste e delle risposte tra client e server. Le dimensioni predefinite del pacchetto sono di 4.096 byte.

Nota

Non modificare le dimensioni del pacchetto, a meno che non si sia certi che migliorerà le prestazioni. Per la maggior parte delle applicazioni, le dimensioni predefinite risultano ottimali.

L'impostazione diventa effettiva immediatamente senza dover riavviare il server.

Limiti

Il valore massimo consentito per network packet size per le connessioni crittografate è di 16.383 byte.

Nota

Se MARS è abilitato, il provider SMUX aggiungerà un'intestazione a 16 byte al pacchetto prima della crittografia TLS, riducendo le dimensioni massime del pacchetto di rete a 16368 byte.

Consigli

Questa opzione è avanzata e la relativa modifica è riservata ad amministratori di database esperti o a professionisti con certificazione per SQL Server.

Se in un'applicazione vengono eseguite operazioni di copia bulk o inviate e ricevute quantità elevate di dati text o image, l'utilizzo di pacchetti di dimensioni maggiori rispetto a quelle predefinite potrebbe determinare un miglioramento delle prestazioni, poiché viene ridotto il numero di operazioni di lettura e scrittura di rete. Se in un'applicazione vengono inviate e ricevute quantità limitate di dati, è possibile impostare le dimensioni del pacchetto su 512 byte, un valore sufficiente per la maggior parte dei trasferimenti di dati.

Nei sistemi che usano protocolli di rete diversi, è consigliabile impostare le dimensioni pacchetto di rete corrispondenti al protocollo usato più di frequente. L'opzione network packet size determina un miglioramento delle prestazioni della rete se i protocolli di rete supportano pacchetti di dimensioni maggiori. Le applicazioni client possono modificare tale valore.

È inoltre possibile richiedere di modificare le dimensioni dei pacchetti tramite le funzioni OLE DB, ODBC (Open Database Connectivity) e DB-Library. Se il server non supporta le dimensioni del pacchetto richieste, il motore di database invia un messaggio di avviso al client. In alcune circostanze, la modifica delle dimensioni del pacchetto potrebbe causare un errore di collegamento di comunicazione, ad esempio l'errore seguente:

Native Error: 233, no process is on the other end of the pipe.

Autorizzazioni

Le autorizzazioni di esecuzione per sp_configure senza alcun parametro o solo con il primo parametro vengono assegnate per impostazione predefinita a tutti gli utenti. Per eseguire sp_configure con entrambi i parametri per la modifica di un'opzione di configurazione o per l'esecuzione dell'istruzione RECONFIGURE, a un utente deve essere concessa l'autorizzazione a livello di server ALTER SETTINGS. L'autorizzazione ALTER SETTINGS è assegnata implicitamente ai ruoli predefiniti del serversysadmin e serveradmin.

Usare SQL Server Management Studio

  1. In Esplora oggetti fare clic con il pulsante destro del mouse su un server e scegliere Proprietà.

  2. Selezionare il nodo Avanzate.

  3. In Reteselezionare un valore per la casella Dimensioni pacchetto di rete .

Usare Transact-SQL

  1. Connettersi al motore di database di.

  2. Nella barra Standard selezionare Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. In questo esempio viene illustrato come usare sp_configure per impostare il valore dell'opzione network packet size su 6500 byte.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'network packet size', 6500;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

Per altre informazioni, vedere Opzioni di configurazione del server.

Configurare le dimensioni dei pacchetti di rete dal lato client

La seguente tabella fornisce esempi di alcune tecnologie di connessione dati che è possibile usare per connettersi a SQL Server e su come controllare le dimensioni dei pacchetti di rete quando vengono usate nelle applicazioni client. Per un elenco completo delle varie tecnologie di connessione dati che è possibile usare per connettersi a SQL Server, vedere Home page per la programmazione client in Microsoft SQL Server:

Libreria client Opzione Predefiniti
Funzione SQLSetConnectAttr SQL_ATTR_PACKET_SIZE Usare il lato server
Impostazione delle proprietà delle connessioni setPacketSize(int packetSize) 8000
ADO.NET - Microsoft.Data.SqlClient PacketSize 8000
ADO.NET - System.Data.SqlClient PacketSize 8000
Proprietà di inizializzazione e di autorizzazione SSPROP_INIT_PACKETSIZE 0 (usare il lato server)

È possibile monitorare l'evento Audit Login o l'evento Existing Connession in SQL Profiler per determinare le dimensioni del pacchetto di rete di una connessione client.

Se il stringa di connessione dell'applicazione contiene un valore per le dimensioni del pacchetto di rete, quel valore viene usato per la comunicazione. Se il stringa di connessione non contiene un valore, i driver usano le impostazioni predefinite per le dimensioni del pacchetto di rete. Ad esempio, come descritto nella tabella precedente, le applicazioni SqlClient usano una dimensione di pacchetto predefinita pari a 8000, mentre le applicazioni ODBC usano le dimensioni del pacchetto configurate nel server.

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e da SQL Server Management Studio 19 (SSMS). Non sono consigliati sia il provider OLE DB SQL Server Native Client (SQLNCLI o SQLNCLI11) che il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB). Passare alla nuova Microsoft OLE DB Driver per SQL Server o alla versione più recente di Microsoft ODBC Driver per SQL Server.