TCP/IP Vs. benannte Pipes

September 16

Microsoft SQL Server bietet zwei Formen der Netzwerkkommunikation: TCP/IP und named Pipes. Beide Protokolle erlauben sowohl externe Software lokal und Remote SQL Server-Instanz herstellen und Ausführen von Abfragen anzeigen, einfügen und Löschen von Daten aus SQL-Datenbanken. Beide Protokolle sind geeignet zur Übertragung von Daten, aber unterscheidet sich die Art und Weise, in denen sie dies tun, und sie eignen sich in der Regel auf unterschiedliche Umgebungen.

Unterschiede

TCP/IP ist das Standardprotokoll, das zum Senden von Daten von einem Host zu einem anderen Netzwerk. Das Protokoll wird in den meisten netzwerkfähigen Anwendungen und Dienste verwendet. In einer SQL Server-Umgebung wird der SQL-Dienst selbst "hören" einen bestimmten TCP-Port und reagieren auf alle Anforderungen, die es auf dem Port erhält. Im Vergleich dazu benannte Pipes verwenden den TCP-Stack nicht aber hörst sie für Anfragen von anderen Peers, dies geschieht durch eine Rohr-Adresse im Format "\.\pipe\sql\query."

Leistung

TCP-macht, die Verwendung von mehreren Methoden, um sicherzustellen, dass Daten ordnungsgemäß an den Remotehost geliefert wird; Diese Methoden gewährleisten, dass keine Daten fehlen geht und alle Pakete sind entfallen. Windowing ist eine der Methoden verwendet, um sicherzustellen, dass der empfangende Host nicht mit Daten überladen ist und erhält nur so viel, wie es ohne überwältigende es verarbeiten kann. Benannte Pipes machen keine dieser Methoden verwenden, sofern sie über ein Netzwerk unterwegs sind. Auf einem lokalen Host haben benannte Pipes eigene Mechanismen für das Senden und empfangen von Daten.

Client-Software

Es gibt mehrere Fälle, wo die named Pipes verwendet werden würde. Wenn eine SQLServer Kommunikation mit anderen lokalen Software verwendet sind die Datenbanken dann benannten Pipes die ideale Lösung. Da benannte Pipes völlig separater Dienst aus dem Netzwerkstack sind werden sie keine der Netzwerkbandbreite verwendet. Lokal, benannte Pipes zu extrem gelten, dass schnell und viel besser als TCP/IP option.

Overhead

Auf eine sehr geschäftige Netzwerkschnittstelle wird mithilfe von TCP/IP zusätzliche Netzwerk-Stack überlasten. Dies bedeutet, dass Anträge sind möglicherweise in eine Warteschlange gestellt, bevor sie vom Kernel gelesen und entsprechend aufbereitet werden können. Wenn named Pipes über ein Netzwerk verwendet werden, aber sie zusätzliche Aufwand wegen der Tatsache fügen verwenden sie ihre eigenen Mechanismen für die Anerkennung und Flow-Steuerung. Dies zusätzliche hörte kann Überlastung des Netzwerks in langsameren Netzwerken führen.