【问题标题】:ado connection pooling connected vs disconnectedado 连接池连接与断开连接
【发布时间】:2012-11-08 03:04:29
【问题描述】:

在跳枪并标记重复之前,我已经搜索了一个没有明确答案的运气。

背景:
我和一位同事在数据读取器方面与我讨论了数据读取器与数据集。

归根结底,我喜欢数据阅读器,因为它轻量级,而我的同事喜欢数据集,因为它没有连接。

他的理由是,由于数据集断开连接,.net 将填充数据集并将连接释放回池中(我们的服务器每天获得数百万次点击)。

他还表示,即使我将 sqlconnection 和 datareader 包装在 using 语句中,连接也不会立即释放,因为 using 语句最终只是在执行 try catch 并调用 connection.close 和 dispose ,这很糟糕,因为我们必须等待垃圾收集器运行,谁知道这需要多长时间。同时,连接不会返回到池中。

我的问题:
他是对的吗?在垃圾回收运行之前,使用数据读取器会导致池中的连接收缩吗?

【问题讨论】:

    标签: .net ado.net dataset sqldatareader


    【解决方案1】:

    他所说的实际上是有道理的,因为我在我公司目前正在运行的一个项目中体验过它,虽然开发人员已经编写了关闭连接的代码,但连接仍然是打开的,而且很多次我们获取连接池错误,这就是我们开始在所有新项目中使用断开连接架构的原因。

    【讨论】:

    • 我很欣赏这个答案,我正在寻找可以证明这两种方式的具体数据。
    猜你喜欢
    • 2010-09-30
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    相关资源
    最近更新 更多