2015-06-09 22 views
0

我正在创建一个MS Windows服务,它监听TCP连接。连接时,它从SQL数据库获取数据并通过TCP套接字返回。在服务启动时打开一个SqlConnection到SQL Server有什么缺点,并且只是重复使用它,直到它可能失败,而不是每次发出“请求”时都打开一个新的连接?我期望少量的服务功能实例 - 每天少于10个,但可能不止于此。将SqlConnection长期开放有什么缺点吗?

回答

1

数据库连接被认为是一个“昂贵”的资源,因此应该只在需要时才打开,之后立即关闭。因此,尽早建立联系并坚持下去会违背这一理念。此外,这样做可以防止底层框架充分利用它可能实现的各种连接池。这只是一种不可扩展的做法。

+0

谢谢你的帮助。为什么数据库连接被认为是“昂贵的”? – Conrad

+0

那么,如果您考虑服务器可能为完全不同的应用程序打开到同一数据库的多个连接的可能性,那么您可能不是唯一与之通话的人。此外,通过该连接发送的数据类型可能需要大量的带宽和/或CPU时间,这意味着开销只是为了保持连接打开,即使在给定时间没有被使用。 –