2015-06-09 17 views
0

我正在創建一個MS Windows服務,它監聽TCP連接。連接時,它從SQL數據庫獲取數據並通過TCP套接字返回。在服務啓動時打開一個SqlConnection到SQL Server有什麼缺點,並且只是重複使用它,直到它可能失敗,而不是每次發出「請求」時都打開一個新的連接?我期望少量的服務功能實例 - 每天少於10個,但可能不止於此。將SqlConnection長期開放有什麼缺點嗎?

回答

1

數據庫連接被認爲是一個「昂貴」的資源,因此應該只在需要時纔打開,之後立即關閉。因此,儘早建立聯繫並堅持下去會違背這一理念。此外,這樣做可以防止底層框架充分利用它可能實現的各種連接池。這只是一種不可擴展的做法。

+0

謝謝你的幫助。爲什麼數據庫連接被認爲是「昂貴的」? – Conrad

+0

那麼,如果您考慮服務器可能爲完全不同的應用程序打開到同一數據庫的多個連接的可能性,那麼您可能不是唯一與之通話的人。此外,通過該連接發送的數據類型可能需要大量的帶寬和/或CPU時間,這意味着開銷只是爲了保持連接打開,即使在給定時間沒有被使用。 –