2012-11-20 211 views
0

偷步和标记重复之前,我搜索一个还没有运气明确的答案。ADO连接池连接断开VS

背景:
一位同事和我在datareader方面与我讨论了datareader与dataset。

什么它归结为是我喜欢的DataReader的,因为它的重量轻,而且我的同事喜欢的数据集,因为它断开。

他的理由是,由于数据集断开,.NET将填充数据集和释放连接返回到池(我们的服务器获得数百万的点击一天)。

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

我的问题:
他是正确的?并且将使用datareader导致池中的连接收缩,直到垃圾收集运行?

回答

0

他在说什么其实是有道理的,因为我有这是目前我公司运行的项目经历吧,它虽然开发人员编写的代码以关闭连接,但仍连接是开放的,很多时候我们得到连接池错误,这就是为什么我们已经开始在所有新项目中使用断开连接的架构。

+0

我欣赏的答案,我在寻找的东西,证明了这两种方式的具体数据。 –