Sql-Server
SQL Server:我們應該使用 TCP 還是命名管道還是使用預設值?
從同一 LAN 中不同伺服器上的 .NET 4 客戶端應用程序連接到 SQL Server 2008 R2 時,可以設置三種不同的網路協議:
- TCP
- 命名管道
- 不要在連接字元串中設置任何內容並使用預設值
什麼是最佳實踐?選擇什麼?
附加資訊:在伺服器和客戶端上都啟用了 TCP 和命名管道。該應用程序正在使用數據庫鏡像。客戶端和伺服器通過快速 LAN 進行通信。
我們正在對此進行調查,因為我們遇到了罕見的虛假連接和超時問題。(但不管怎樣,我想知道最佳實踐)。
MSDN 上有一篇關於這個主題的文章,但它非常籠統和模糊。它不建議或推薦任何有用的東西。
我更喜歡 TCP/IP 而不是命名管道,儘管在大多數情況下不會有明顯的區別。您可以通過在 SQL Server 配置管理器中調整實例支持的協議來完成此操作,而不是在連接字元串中進行硬編碼(這樣可以更輕鬆地進行更改或排除故障)。
本質上,命名管道涉及的路由和其他成本(除非您的應用程序與 SQL Server 在同一台機器上,在這種情況下只有一點額外成本)使其成為效率較低的選項,尤其是在規模較慢的網路環境中(100MB 或更少),或者如果您的工作負載突然出現。
如果您的應用程序與SQL Server 在同一個機器上,您還應該記住共享記憶體 - 如果您在 SQL Server 機器上的應用程序直接與 SQL Server 通信,這將是最有效的選擇。