2009-07-16 2 views
10

Was ist das schnellste SQL Server-Verbindungsprotokoll?Schnellstes SQL Server-Protokoll?

Verwandte: Welche Protokolle sind verfügbar remote versus lokal, und beeinflusst das die Wahl des schnellsten Protokolls?

+0

Siehe auch [Was sind Rohre benannt?] (Http://stackoverflow.com/questions/175579/what-are-named-pipes) – Vadzim

Antwort

14

ÜBER. Dies ist das schnellste SQL-Protokoll, es wird auf dedizierter Hardware ausgeführt und wird für Benchmark-Datensätze von SQL Server verwendet.

Beachten Sie, dass das VIA-Protokoll von Microsoft ist veraltet und wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Es wird jedoch in SQL Server 2008 unterstützt, SQL Server 2008 R2 und SQL Server 2012.

Shared Memory als Performance nächste ist, aber es funktioniert nur zwischen einem Client und einem Server, der Speicher tatsächlich teilen , nur lokal.

Für Remote-Konnektivität auf normaler Hardware, TCP ist der Weg zu gehen. Unter normalen Operationen hat es die gleiche Leistung wie Named Pipes. Auf langsamen oder ausgelastete Netzwerke, übertrifft es NP in Robustheit und Geschwindigkeit, eine Tatsache, documented in MSDN:

Für Named Pipes Netzwerk Kommunikation sind in der Regel mehr interaktiv. Ein Partner sendet keine Daten , bis ein anderer Peer mit einem Lesebefehl danach fragt. Ein Netzwerk lesen in der Regel beinhaltet eine Reihe von Peek namens Pipes Nachrichten, bevor es beginnt, die Daten zu lesen. Diese können in einem langsamen Netzwerk sehr teuer sein und übermäßigen Netzwerkverkehr verursachen, der wiederum andere Netzwerkclients betrifft.

Named Pipes können auch auf Client verbinden Auszeiten führen:

TCP/IP-Sockets auch einen Rückstand Warteschlange unterstützen. Dies kann einen eingeschränkten Glättungseffekt im Vergleich zu den Namen Pipes, die zu Pipeline-beschäftigt Fehler führen können, wenn Sie versuchen, eine Verbindung zu SQL Server bereitzustellen.

Leider ist die normale Client-Konfiguration versucht NP erste und dies kann Verbindungsprobleme verursachen (für die oben genannten Gründe), wobei auf dem Client-Netzwerk-Konfiguration TCP Durchsetzung (oder in Verbindungszeichenfolge, über tcp:servername) springt der NP verbindet Versuch und geht direkt zu TCP für eine viel bessere Erfahrung unter Last.

Jetzt ist die gleiche Verbindung, die ich oben zitierte, geht weiter, um NP für seine einfache Konfiguration zu loben, am wahrscheinlichsten Verweis auf keine SQL TCP-Port in der Firewall zu öffnen, aber gibt es, wo ich und BOL verschiedene Ansichten haben.

+2

NP zuerst nur, wenn Sie von Win 2000 oder älteren MDACs aktualisiert. Ein sauberer XP-Build hat tcp zuerst. – gbn

+0

Gibt es eine Quelle dafür? Speziell Shared Memory ist der schnellste (ich kann natürlich sehen, warum es so wäre). – PeterX

7

Shared memory is fastest for local (Client und Server auf demselben Computer). Named Pipes ist wahrscheinlich 2. Fasted für lokale. Für Remote verwendet jeder TCP-IP und die verbleibenden Protokolle werden in Netzwerk-Geschichte.

+3

Ich nehme an, dass von lokalen Sie "auf der gleichen Maschine laufen", nicht ein lokales Netzwerk, denn so funktioniert Shared Memory. – ichiban

+0

Wie oben, haben Sie eine Quelle, um dies zu untermauern? (Ich kann sehen, warum es wäre). – PeterX

+0

@PeterX Für andere Fragen zum Stack-Überlauf scheinen named pipes und tcp-ip (für dieselbe Maschine) ungefähr gleich schnell zu sein. 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

Die Netzwerk-Bibliotheken, die Sie wählen bei der Installation von SQL Server, um die Geschwindigkeit der Kommunikation zwischen dem Server und seinen Kunden beeinflussen können. Von den drei wichtigsten Netzwerkbibliotheken ist TCP/IP das schnellste und Multiprotokoll das langsamste. Aufgrund des Geschwindigkeitsvorteils sollten Sie TCP/IP sowohl auf Ihren Servern als auch auf Ihren Clients verwenden. Installieren Sie auch nicht verwendete Netzwerkbibliotheken auf dem Server nicht, da sie nur unnötigen Overhead verursachen **

0

Named Pipes ist das schnellste SQL Server-Protokoll.