2009-07-16 12 views
10

Qual è il protocollo di connessione SQL Server più veloce?Il protocollo SQL Server più veloce?

Correlati: quali protocolli sono disponibili remoti rispetto a quelli locali e ciò influenza la scelta del protocollo più veloce?

+0

Vedere anche [Cosa sono le pipe denominate?] (Http://stackoverflow.com/questions/175579/what-are-named-pipes) – Vadzim

risposta

14

VIA. Questo è il protocollo SQL più veloce, viene eseguito su hardware dedicato e viene utilizzato per creare record benchmark di SQL Server.

Si noti che il protocollo VIA è deprecato da Microsoft, e verrà rimosso in una versione futura di Microsoft SQL Server. E 'comunque supportata in SQL Server 2008, SQL Server 2008 R2 e SQL Server 2012.

Shared Memory è accanto come le prestazioni, ma funziona solo tra un client e un server che può effettivamente condividere la memoria , quindi solo locale.

Per la connettività remota su hardware ordinario, TCP è la strada da percorrere. In normali operazioni, ha le stesse prestazioni di Named Pipes. Sulle reti lente o sature, sorpassa NP per robustezza e velocità, un dato di fatto documented in MSDN:

per named pipe, rete le comunicazioni sono in genere più interattivo. Un peer non invia i dati fino a quando un altro peer lo richiede utilizzando un comando di lettura . Una lettura di rete in genere implica una serie di messaggi con nome pipe prima che inizi a leggere i dati . Questi possono essere molto costosi in una rete lenta e causare un eccessivo traffico di rete , che a sua volta interessa gli altri client di rete .

named pipe possono anche portare a client si connettono time out:

TCP/IP Sockets anche sostenere un backlog coda. Questo può fornire un effetto di smussatura limitato rispetto alle pipe con nome che potrebbero causare errori pipe-busy quando si tenta di connettere a SQL Server.

Purtroppo la configurazione del client normale tenta NP prima e questo può causare problemi di connettività (per i motivi sopra citati), dove far rispettare TCP sulla configurazione di rete client (o in stringa di connessione, tramite tcp:servername) ignora il NP collegare tentativo e va dritto al TCP per un'esperienza molto migliore sotto carico. È vero che lo stesso link che ho citato sopra continua ad elogiare NP per la sua facilità di configurazione, molto probabilmente riferendosi alla non necessità di aprire la porta TCP SQL nel firewall, ma è lì dove io e BOL abbiamo viste differenti.

+2

NP solo se si è effettuato l'aggiornamento da Win 2000 o MDAC precedenti. Una build XP pulita ha prima il tcp. – gbn

+0

C'è una fonte per questo? La memoria specificatamente condivisa è la più veloce (posso ovviamente vedere perché sarebbe). – PeterX

7

Shared memory is fastest for local (client e server sulla stessa macchina). I pipe nominati sono probabilmente il secondo digiuno per locale. Per il remoto tutti utilizzano TCP-IP e i restanti protocolli si trasformano in una cronologia di rete.

+3

Suppongo che per locale si intenda "in esecuzione sulla stessa macchina", non una rete locale poiché è così che funziona la memoria condivisa. – ichiban

+0

Come sopra, hai una fonte per eseguire il backup di questo? (Posso capire perché sarebbe). – PeterX

+0

@PeterX Per altre domande sullo stack overflow, named pipe e tcp-ip (per la stessa macchina) sembrano essere pressoché uguali per la velocità. https://stackoverflow.com/questions/10872557/how-slow-are-tcp-sockets-compared-to-named-pipes-on-windows-for-localhost-ipc – MatthewMartin

0

Using Shared Memory Protocol

le librerie di rete che si sceglie quando si installa SQL Server può influire sulla velocità delle comunicazioni tra il server ed i suoi clienti. Tra le tre principali librerie di rete, TCP/IP è il più veloce e Multi-Protocol è il più lento. A causa del vantaggio di velocità, si vorrà utilizzare TCP/IP su server e client. Inoltre, non installare librerie di rete inutilizzate sul server, poiché contribuiscono solo a spese generali non necessarie **

0

Named Pipes è il protocollo SQL Server più veloce.

Problemi correlati