2008-10-01 23 views

Respuesta

28

El resultado final es el mismo. La diferencia es:

  • 'localhost' se resuelve en el nivel de TCP/IP y es equivalente a la dirección IP 127.0.0.1
  • Dependiendo de la aplicación "(local)" podría ser sólo un alias de 'localhost '. En SQLServer, '(local)' y '.' significa que la conexión se realizará utilizando el protocolo llamado pipes (memoria compartida) dentro de la misma máquina (no es necesario pasar por la pila TCP/IP).

Esa es la teoría. En la práctica, no creo que haya una diferencia sustancial en el rendimiento o las características si usa cualquiera de ellos.

+1

En la práctica, hay una ligera diferencia en que debe verificar qué protocolo está habilitado. A veces, solo ciertos protocolos están habilitados por defecto, lo que se puede ver y cambiar más fácilmente en el Administrador de configuración de SQL Server. Eso marcaría una gran diferencia si se está conectando a través de TCP/IP, pero solo los conductos con nombre están habilitados, por ejemplo. – jamiebarrow

+0

Hace poco noté que, en el contexto del servidor actual, puede consultar la instancia actual sin especificar el nombre. Creé un trabajo y el nombre del servidor no aceptaría un nombre de instancia junto con localhost (por ejemplo, localhost \ SQLEXPRESS) pero conoce (local) sin especificar el nombre de la instancia. Lo mismo es cierto para la fuente de datos de SSIS donde sabe que la instancia actual es (local) sin especificar el nombre de instancia real. – MichaelChan

1

En general son sinónimos. Sin embargo, depende de la aplicación que está configurando. Siempre que la aplicación entienda lo que quiere decir, no debería provocar una pérdida de rendimiento. Al menos, no uno que tengas que eliminar de forma prematura, si entiendes.

0

Hasta donde sé el punto "." y "local" son Windows términos de aplicación, no es un término "estándar", localhost resuelve a 127.0.0.1 en el nivel de TCP/IP así que si usted quiere asegurarse de que usted son "compatibles" entre plataformas, debe usar localhost o 127.0.0.1

+7

"localhost" no es una palabra mágica o reservada; su definición existe en/etc/hosts, o \ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \ HOSTS, o ... – tzot

+1

@tzot ¿Cuándo dije que localhost es una palabra mágica o reservada? Por el contrario, dije que dot y local son más estándares de SQL Server/nombres de Windows y que localhost resuelve a 127.0.0.1 por el archivo de hosts, por lo general tanto en Unix como en Windows. ¿Te importa leer? –

0

Las diferencias descritas por Sergio pueden tener efectos notables debido a autorizaciones.

Es probable que el usuario de sql tenga acceso a la canalización con nombre, pero a menudo no puede acceder a localhost. Pronto lo notará cuando este es el caso :)

Cuestiones relacionadas