【问题标题】:Open one connection vs Open several打开一个连接 vs 打开几个
【发布时间】:2011-07-12 21:08:15
【问题描述】:

我问的另一个问题..

Closing a conneciton in the "unload" method

激起了我对这个主题的兴趣。当与 asp.net/c# 相关时,我了解打开/关闭数据库连接会产生潜在的费用,我感兴趣的是它是否更昂贵......

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

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

如果有人能提供任何见解,或为我指明有关此事的一些阅读材料的方向,那就太棒了。

【问题讨论】:

    标签: c# asp.net sql


    【解决方案1】:

    您可能会发现以下链接很有用。他们指出了 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

    我同意史蒂夫的观点,在大多数情况下,您应该在尽可能短的时间内保持连接打开。

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

    【讨论】:

      【解决方案2】:

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

      连接并没有真正关闭,而是释放到连接池中以在其他地方重复使用。通过快速释放连接,您实际上减少了打开的连接数量。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-04
          • 2019-11-09
          • 1970-01-01
          • 2018-12-20
          • 2020-03-11
          • 1970-01-01
          • 2018-04-26
          • 1970-01-01
          相关资源
          最近更新 更多