2008-10-01 122 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用戶最有可能訪問命名管道,但通常無法訪問本地主機。在這種情況下,您會很快注意到:)

相關問題