Scelta di un protocollo di rete
Per connettersi a SQL Server motore di database è necessario che sia abilitato un protocollo di rete. Microsoft SQL Server può gestire le richieste su più protocolli contemporaneamente. I client si connettono a SQL Server con un singolo protocollo. Se il programma client non sa quale protocollo SQL Server è in ascolto, configurare il client per provare in sequenza più protocolli. Usare 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 usano il protocollo di memoria condivisa possono connettersi solo a un'istanza di SQL Server in esecuzione nello stesso computer, non è utile 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 Pipe
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).
Named Pipes e TCP/IP Sockets
In un ambiente di rete locale (LAN) veloce, i client Named Pipes e i socket TCP/IP 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 localmente nel computer che esegue un'istanza di SQL Server, il protocollo Named Pipes locale è un'opzione. Il protocollo Named Pipes locale viene eseguito in modalità kernel a velocità molto elevate.
Con i socket TCP/IP 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 dei socket TCP/IP, quali il windowing, gli acknowledgement posticipati 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.
I socket TCP/IP supportano inoltre una coda di backlog. Ciò può offrire un effetto di smoothing limitato rispetto alle named pipe che potrebbero causare errori di pipe occupato quando si tenta di connettersi 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 selezionarne uno o provare i protocolli nell'ordine elencato in Gestione configurazione SQL Server.
Per una breve esercitazione su come configurare i protocolli e connettersi al motore di database, vedere Esercitazione: Introduzione con il motore di database.