2008-10-01 106 views

回答

28

最终结果是一样的。所不同的是:

  • “localhost”的解决在TCP/IP的水平,即相当于IP地址127.0.0.1
  • 根据应用“(本地)”可能只是“的别名本地主机”。在SQLServer中,'(local)'和'。'意味着连接将使用同一台机器内的命名管道(共享内存)协议进行(不需要通过TCP/IP协议栈)。

这是理论。在实践中,如果您使用其中任何一种,我认为在性能或功能方面没有实质性差异。

+1

实际上,您应该检查启用哪种协议有一点区别。有时候,默认情况下只启用某些协议,可以在SQL Server配置管理器中查看和更改最简单的协议。例如,如果您通过TCP/IP进行连接,但是仅启用了命名管道,则会产生很大的差异。 – jamiebarrow 2015-10-08 15:37:10

+0

我最近注意到,在当前服务器的上下文中,您可以引用当前实例而不指定名称。我创建了一个作业,并且服务器名称不会与localhost(例如localhost \ SQLEXPRESS)一起接受实例名称,但它知道(本地)而不指定实例名称。对于SSIS的数据源也是如此,它知道当前实例为(本地),而没有指定实际的实例名称。 – MichaelChan 2017-08-24 22:15:59

1

它们通常是同义词。但是,这取决于您正在配置的应用程序。只要该应用了解您的意思,就不会导致性能损失。至少,如果你有我的偏差,那么你不得不提前彻底根除。

0

据我所知点“”“本地”是Windows应用程序而言,不是一个“标准”一词,本地主机,所以如果你想确保你解析为127.0.0.1在TCP/IP层是“兼容”跨平台的,你应该是由于授权使用localhost或127.0.0.1

0

塞尔吉奥描述的差异可以有noticable效果。

你是sql用户最有可能访问命名管道,但通常无法访问本地主机。在这种情况下,您会很快注意到:)

相关问题