Configurare l'opzione network packet size (opzione di configurazione del server)

Si applica a:SQL Server

Questo articolo descrive come configurare l'opzione di configurazione del server dimensioni pacchetto di rete in SQL Server usando SQL Server Management Studio o Transact-SQL. Con l'opzione Dimensioni pacchetto di rete è possibile impostare le dimensioni del pacchetto, in byte, applicate in tutta la 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

È consigliabile modificare le dimensioni dei pacchetti solo se si è certi che l'operazione determinerà un miglioramento delle prestazioni. Per la maggior parte delle applicazioni, le dimensioni predefinite risultano ottimali.

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

Limitazioni e restrizioni

  • 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, un messaggio di avviso verrà inviato al client dal motore di database. In alcuni casi la modifica delle dimensioni dei pacchetti potrebbe provocare un errore del collegamento di comunicazione, ad esempio:

    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, a un utente deve essere concessa l'autorizzazione a livello di server ALTER SETTINGS. L'autorizzazione ALTER SETTINGS è assegnata implicitamente ai ruoli predefiniti del server sysadmin 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 AdventureWorks2022;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'network packet size', 6500;
GO
RECONFIGURE;
GO

Per altre informazioni, vedere Opzioni di configurazione del server (SQL 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 SQL:

Libreria client Opzione Default
ODBC SQL_ATTR_PACKET_SIZE Usare il lato server
JDBC setPacketSize(int packetSize) 8000
ADO.NET - Microsoft.Data.SqlClient PacketSize 8000
ADO.NET - System.Data.SqlClient PacketSize 8000
OLEDB 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.

Nota

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 SQL Server Management Studio 19 (SSMS). Il provider Microsoft OLE DB per SQL Server (SQLNCLI or SQLNCLI11) e il provider OLE DB SQL Server Native Client (SQLNCLI) precedenti rimangono deprecati e non è consigliabile usarli per nuovi progetti di sviluppo. Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server o alla versione più recente di Microsoft ODBC Driver per SQL Server.

Vedi anche