打开一个连接vs打开几个

时间:2011-07-12 21:08:16

标签: c# asp.net sql

我问的另一个问题..

Closing a conneciton in the "unload" method

引起了我对这个主题的兴趣。当与asp.net/c#有关时,我知道打开/关闭数据库连接有一个潜在的费用,我感兴趣的是它是否更昂贵......

  • 在请求开始时打开数据库连接
  • 进行多项操作
  • 结束时关闭连接或请求

VS

  • 直接在任何数据库命令之前打开连接
  • 马上关门 (因此在请求期间多次打开和关闭连接)

如果有人能够提供任何见解,或者指出我对这个问题的一些阅读材料的方向,那将是非常棒的。

3 个答案:

答案 0 :(得分:3)

您不一定将数据库连接的使用限制为单个命令,但保持打开和关闭之间的持续时间相对较短。

连接并未真正关闭,但会被释放到连接池中以便在其他地方重复使用。通过快速释放连接,您实际上减少了打开的连接数。

答案 1 :(得分:3)

您可能会发现以下链接很有用。他们指出了Microsoft实施数据访问层的最佳实践:

  1. 数据层指南:http://msdn.microsoft.com/en-us/library/ee658127.aspx
  2. 数据组件设计:http://msdn.microsoft.com/en-us/library/ee658119.aspx
  3. 具体关于连接:http://msdn.microsoft.com/en-us/library/ee658127.aspx#Connections
  4. 我同意Steve的观点,在大多数情况下,你应该尽可能在最短的时间内保持连接。

    根据我的经验,我曾经重新使用长时间使用已打开连接的代码并导致许可问题(并发用户数)。

答案 2 :(得分:1)

这不是关于每个请求的打开连接是否更高或更低。它是关于数据访问层的最佳实践。而且,它不只是关于ASP.NET或C#。 我会说你的第二个选择(通常只有!)似乎更合理。这样,您可以更好地控制关闭连接。否则,您将面临打开过多连接的风险[空闲]