让 SqlConnection 长期打开有什么缺点吗?

Are there drawbacks to leaving a SqlConnection open long-term?

我正在创建一个 MS Windows 服务,用于侦听 TCP 连接。连接后,它通过 TCP 套接字从 SQL db 和 returns 获取数据。在服务启动时打开 SqlConnection 到 SQL 服务器的缺点是什么,然后重新使用它,直到它可能失败,而不是每次都打开一个新连接一个"request"被造了?我期望服务功能的少量实例化 - 每天少于 10 个,但可能会更多。

数据库连接被视为一种 "expensive" 资源,因此应仅在需要时打开,并在需要时立即关闭。因此,过早建立联系并坚持下去会违背这一理念。此外,这样做会阻止您的底层框架充分利用它可能实现的各种连接池。这不是一个非常可扩展的做法。