为何断开与数据库的连接?

Oti*_*iel 5 c# database sql-server

背景信息:我使用C#进行编码,使用Microsoft SQL Server进行数据库编写.

我在谷歌上找不到这个主题,所以我在这里问:在执行查询后我是否应该总是关闭与数据库的连接?

我在两种解决方案之间徘徊(可能存在更好的解决方案......):

  • 在查询之前打开连接,然后在SQL查询之后立即关闭它

  • 或者在我的应用程序开始时打开连接,并在每个SQL查询之前检查连接是否仍在运行,并在需要时重新打开它.

在过去,我使用了第一个解决方案,但我发现打开一个新连接可能需要相当长的时间(尤其是通过3G连接到我的局域网的VPN连接),这会减慢我的应用程序.这就是为什么我决定采用第二种解决方案(在这种情况下,如果我们忘记超时,我的连接应该总是向上),并注意到一些更好的性能.

我是否需要在申请结束时关闭连接,还是可以忘记它?

Jon*_*eet 13

是的,您应该在每次SQL查询后关闭连接.数据库连接池将处理物理网络连接,并为您保持打开状态.你说你发现打开一个连接可能需要一些时间 - 你是否发现应用程序真的这么做了多次?

(我希望你真正的应用程序不会通过3G直接与数据库对话,顺便说一句......大概这只是出于开发目的......)