在开枪并标记重复之前,我搜索了一个没有明确答案的运气。
背景:
我和一位同事在数据阅读器方面与我讨论了数据阅读器与数据集。
归根结底,我喜欢数据阅读器,因为它轻量级,而我的同事喜欢数据集,因为它没有连接。
他的理由是,由于数据集断开连接,.net 将填充数据集并将连接释放回池中(我们的服务器每天获得数百万次点击)。
他还表示,即使我将 sqlconnection 和 datareader 包装在 using 语句中,连接也不会立即释放,因为 using 语句最终只是在执行 try catch 并调用 connection.close 和 dispose,这很糟糕因为我们必须等待垃圾收集器运行,谁知道这需要多长时间。同时,连接不会返回到池中。
我的问题:
他是对的吗?并且使用数据读取器会导致池中的连接收缩,直到垃圾收集运行?