Sql-Server

SQL Server:我們應該使用 TCP 還是命名管道還是使用預設值?

  • September 12, 2012

從同一 LAN 中不同伺服器上的 .NET 4 客戶端應用程序連接到 SQL Server 2008 R2 時,可以設置三種不同的網路協議:

  1. TCP
  2. 命名管道
  3. 不要在連接字元串中設置任何內容並使用預設值

什麼是最佳實踐?選擇什麼?

附加資訊:在伺服器和客戶端上都啟用了 TCP 和命名管道。該應用程序正在使用數據庫鏡像。客戶端和伺服器通過快速 LAN 進行通信。

我們正在對此進行調查,因為我們遇到了罕見的虛假連接和超時問題。(但不管怎樣,我想知道最佳實踐)。

MSDN 上有一篇關於這個主題的文章,但它非常籠統和模糊。它不建議或推薦任何有用的東西。

我更喜歡 TCP/IP 而不是命名管道,儘管在大多數情況下不會有明顯的區別。您可以通過在 SQL Server 配置管理器中調整實例支持的協議來完成此操作,而不是在連接字元串中進行硬編碼(這樣可以更輕鬆地進行更改或排除故障)。

本質上,命名管道涉及的路由和其他成本(除非您的應用程序與 SQL Server 在同一台機器上,在這種情況下只有一點額外成本)使其成為效率較低的選項,尤其是在規模較慢的網路環境中(100MB 或更少),或者如果您的工作負載突然出現。

如果您的應用程序SQL Server 在同一個機器上,您還應該記住共享記憶體 - 如果您在 SQL Server 機器上的應用程序直接與 SQL Server 通信,這將是最有效的選擇。

您可以更詳細地了解 TCP/IP 的性能優勢

引用自:https://dba.stackexchange.com/questions/24165