【发布时间】:2013-02-14 19:54:46
【问题描述】:
我在 web-application 中有一个方法,其中包含大量代码。在该方法的几乎相反的两端,我有数据库交互。
多次打开/关闭连接还是在第一次需要时打开/在最后一次需要时关闭连接是最佳实践吗?
多次
connection.Open();
//execute db interaction
connection.Close();
//execute business logic
connection.Open();
//execute db interaction
connection.Close();
//execute business logic
connection.Open();
//execute db interaction
connection.Close();
//etc...
先打开/最后关闭
connection.Open();
//execute db interaction
//execute business logic
//etc...
//execute db interaction
connection.Close();
【问题讨论】:
-
如果您知道不久之后您将需要它,您为什么要想要关闭连接?
-
因此,问题...
-
您在问我们什么更快,我在问您为什么还要关闭它。 “我有两个垃圾袋要丢弃。在倾倒这两个垃圾袋之间是否应该关闭罐盖?”。这取决于中间发生了什么,取决于你做了什么。一般来说,答案是:在您希望很快再次使用它时保持打开状态。
-
“性能”在这里并不是最好的词。也许我正在寻找“最佳实践”。对于您的 cmets,“最佳做法”是在我需要时保持连接打开,并在我不再需要时关闭它。
-
我认为这是一个有趣的问题。下面的 MikeC 推荐了一个新的连接“每个方法”。这种方法在文献中很常见,我可以看到这是无状态软件的要求。另一方面,我不确定在一个 GUI 会话的生命周期内保持一个开放的连接有多大的罪过。对于您的特定情况,1 连接就足够了。
标签: c# database performance web-applications