2008-10-01 14 views

Antwort

28

Das Endergebnis ist das gleiche. Der Unterschied ist:

  • ‚localhost‘ löst bei der TCP/IP-Ebene und entsprechen die IP-Adresse 127.0.0.1
  • Abhängig von der Anwendung „(local)“ könnte nur ein Alias ​​für ‚localhost ". In SQLServer, '(lokal)' und '.' bedeutet, dass die Verbindung mit dem Named Pipes-Protokoll (Shared Memory) innerhalb derselben Maschine hergestellt wird (muss nicht durch den TCP/IP-Stack gehen).

Das ist die Theorie. In der Praxis glaube ich nicht, dass es einen wesentlichen Unterschied in der Leistung oder den Funktionen gibt, wenn Sie einen von beiden verwenden.

+1

In der Praxis gibt es einen kleinen Unterschied in dem Sie überprüfen sollten, welches Protokoll aktiviert ist. Manchmal sind nur bestimmte Protokolle standardmäßig aktiviert, die am einfachsten im SQL Server-Konfigurations-Manager angezeigt und geändert werden können. Das würde einen großen Unterschied machen, wenn Sie eine Verbindung über TCP/IP herstellen, aber nur Named Pipes aktiviert sind. – jamiebarrow

+0

Ich habe kürzlich festgestellt, dass Sie im Kontext des aktuellen Servers auf die aktuelle Instanz verweisen können, ohne den Namen anzugeben. Ich habe einen Job erstellt, und der Servername akzeptiert keinen Instanznamen zusammen mit localhost (z. B. localhost \ SQLEXPRESS), aber er weiß (lokal), ohne den Instanznamen anzugeben. Dasselbe gilt für die Datenquelle von SSIS, wo sie weiß, dass die aktuelle Instanz als (lokal) ohne Angabe des tatsächlichen Instanznamens gilt. – MichaelChan

1

Sie sind allgemein Synonyme. Dies hängt jedoch von der Anwendung ab, die Sie konfigurieren. Solange die App versteht, was Sie meinen, sollte dies nicht zu einem Leistungsverlust führen. Wenigstens muss man nicht vorzeitig ausradieren, wenn du meine Drift bekommst.

0

Soweit ich weiß, den Punkt "." und "local" sind Windows-Anwendung Begriffe, kein "Standard" Begriff, localhost zu 127.0.0.1 in der TCP/IP-Ebene löst also, wenn Sie Sie sicherstellen möchten, sind plattformübergreifend "kompatibel" sollten Sie entweder localhost oder 127.0.0.1 verwenden

+7

"localhost" ist kein magisches oder reserviertes Wort; seine Definition existiert in/etc/hosts, oder \ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \ HOSTS, oder ... – tzot

+1

@tzot Wann habe ich gesagt, dass localhost ein magisches oder reserviertes Wort ist? Im Gegenteil, ich habe gesagt, dass dot und local mehr SQL-Server/Windows-Benennungsstandards sind und dass localhost von der hosts-Datei zu 127.0.0.1 aufgelöst wird, normalerweise sowohl unter Unix als auch unter Windows. Interessiert zu lesen? –

0

Die von Sergio beschriebenen Unterschiede können durch Berechtigungen bemerkbar sein.

Sie sind SQL-Benutzer hat am wahrscheinlichsten Zugriff auf die Named Pipe, kann aber oft nicht auf localhost zugreifen. Sie werden bald genug bemerken, wenn dies der Fall ist :)

Verwandte Themen