【问题标题】:Opening data connection打开数据连接
【发布时间】:2010-03-26 16:13:46
【问题描述】:

在 c#.net 中,当您打开与数据库的连接时,在我的情况下是 oracle,是否涉及很多开销?我猜不是因为连接池。那么我是否正确地说,每次我打开一个连接时,它实际上都会从池中抓取一个打开的连接,如果池中没有可用的连接,它将打开一个新连接?

谢谢!

【问题讨论】:

    标签: c# database connection


    【解决方案1】:

    你是对的。有很多很好的文章解释了 ADO 连接池。例如,MSDN - SQL Server Connection Pooling (ADO.NET),上面写着:

    连接池减少了数量 必须建立新连接的次数 打开。 pooler 保持所有权 的物理连接。它管理 通过保持一组连接 每个给定的活动连接 连接配置。每当一个 用户在连接上调用 Open, pooler 寻找可用的 池中的连接。如果一个汇集 连接可用,它返回它 给来电者而不是打开一个新的 联系。当应用程序调用 关闭连接,pooler 将其返回到活动的池集 连接而不是关闭它。 一旦连接返回到 池,它已准备好在 下一次公开通话。

    【讨论】:

    • 感谢您的回复!我只是想确保没有其他任何事情发生。
    【解决方案2】:

    第一次打开连接会有很多开销。如果您正在使用连接池并且使用完全相同的相同的连接字符串,那么下次打开连接时应该使用连接池中的连接并且速度会快很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多