Condividi tramite


Scelta di un protocollo di rete

Per eseguire la connessione al Motore di database di SQL Server è necessario abilitare un protocollo di rete. Microsoft SQL Server è in grado di gestire richieste su più protocolli contemporaneamente. I client eseguono la connessione a SQL Server con un unico protocollo. Se il programma client non conosce il protocollo sul quale SQL Server è in attesa, configurarlo per l'esecuzione di tentativi in sequenza su più protocolli. Utilizzare Gestione configurazione SQL Server per abilitare, disabilitare e configurare i protocolli di rete.

Shared Memory

Shared Memory è il protocollo più semplice da utilizzare e non richiede la configurazione di impostazioni. Poiché i client che utilizzano questo protocollo possono connettersi solo a un'istanza di SQL Server eseguita sullo stesso computer, Shared Memory non è adatto per la maggior parte delle attività del database. Utilizzare il protocollo Shared Memory per la risoluzione dei problemi quando si sospetta che gli altri protocolli siano configurati in modo non corretto.

Nota

I client che utilizzano MDAC 2.8 o versioni precedenti non possono utilizzare il protocollo Shared Memory. Se tentano di utilizzarlo, vengono automaticamente impostati sul protocollo Named Pipes.

TCP/IP

TCP/IP è un protocollo comune ampiamente utilizzato in Internet. Consente la comunicazione in reti interconnesse di computer con architetture hardware eterogenee e sistemi operativi diversi. Include gli standard per il routing del traffico di rete e offre caratteristiche di sicurezza avanzate. È il protocollo più diffuso nel settore aziendale. La configurazione del computer per l'utilizzo del protocollo TCP/IP può essere una procedura complessa, ma nella maggior parte dei casi i computer in rete sono già configurati in modo corretto. Per configurare le impostazioni TCP/IP non esposte in Gestione configurazione SQL Server, vedere la documentazione di Microsoft Windows.

Named Pipes

Il protocollo Named Pipes è stato sviluppato per le reti locali. Un parte della memoria viene utilizzata da un processo per il passaggio di informazioni a un altro processo, in modo che l'output dell'uno corrisponda all'input dell'altro. Il secondo processo può essere locale (in esecuzione nello stesso computer del primo) o remoto (in un computer in rete).

VIA

Il protocollo VIA (Virtual Interface Adapter) opera sull'hardware VIA. Per informazioni sull'utilizzo di VIA, rivolgersi al fornitore dell'hardware.

Nota importanteImportante

Il protocollo VIA è deprecato. Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa caratteristica in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Named Pipes e TCP/IP Sockets

In un ambiente di rete locale (LAN) veloce, i client TCP/IP Sockets e Named Pipes sono paragonabili in termini di prestazioni. La differenza di prestazioni tra i client diventa evidente con reti più lente, ad esempio nelle reti WAN (Wide Area Network) o nelle reti remote. Ciò dipende dalle diverse modalità di comunicazione impostate tra i peer dal meccanismo di comunicazione interprocesso (IPC).

Nel caso di Named Pipes, le comunicazioni di rete sono in genere caratterizzate da un maggior livello di interattività. Un peer invia i dati soltanto quando un altro peer li richiede tramite un comando di lettura. Un'operazione di lettura in rete genera solitamente una serie di messaggi di peek sulle named pipe prima dell'inizio della lettura dei dati. Tali messaggi possono risultare particolarmente onerosi in una rete lenta e provocare un traffico eccessivo, con conseguenze sulle prestazioni degli altri client di rete.

È inoltre importante distinguere tra pipe locali e pipe di rete. Se l'applicazione server viene eseguita a livello locale nel computer che esegue un'istanza di SQL Server, il protocollo Named Pipes locale è un'opzione consigliata. Il protocollo Named Pipes locale viene eseguito in modalità kernel a velocità molto elevate.

Con TCP/IP Sockets le trasmissioni di dati sono più efficienti e comportano un minor overhead. Le trasmissioni di dati possono inoltre sfruttare i meccanismi di ottimizzazione delle prestazioni di TCP/IP Sockets, quali il windowing, gli acknowledgement posticipiati e così via. Questo può essere molto utile in una rete lenta. A seconda del tipo di applicazione, queste differenze di prestazioni possono risultare significative.

TCP/IP Sockets supporta inoltre una coda di backlog. Questo assicura una maggiore continuità di funzionamento (anche se limitata) rispetto a Named Pipes con il quale possono verificarsi errori di pipe occupata durante i tentativi di connessione a SQL Server.

TCP/IP è generalmente preferibile in una rete LAN, WAN o remota lenta, mentre Named Pipes può rappresentare una scelta migliore quando la velocità della rete non costituisce un problema. Named Pipes offre infatti un maggior numero di funzionalità e opzioni di configurazione e il suo utilizzo risulta più semplice.

Abilitazione del protocollo

Per il corretto funzionamento, è necessario abilitare il protocollo sia nel client che nel server. Il server può restare in attesa di richieste su tutti i protocolli abilitati contemporaneamente. I computer client possono sceglierne uno oppure tentare tutti i protocolli nell'ordine indicato in Gestione configurazione SQL Server.

Nota

I protocolli di rete Banyan VINES Sequenced Packet Protocol (SPP), Multiprotocol, AppleTalk e NWLink IPX/SPX non sono supportati in Microsoft SQL Server. Per i client che in precedenza eseguivano la connessione con questi protocolli, è necessario selezionare un protocollo diverso per la connessione a SQL Server.

Per una breve esercitazione sulla configurazione dei protocolli e sulla connessione al Motore di database, vedere Esercitazione: Introduzione al motore di database.