处置连接或断开连接(Dispose the connection or Close the conn

2019-07-30 08:56发布

以下两种方法中的哪一个具有更好的性能?

using( var DB_Connection_s = new DBConnection() )
{
 //todo: interact with database connection
}

要不就 :

DB_Connection_s.Close();

在末尾。

请问第一种方法使池概念没用? 因为如果我处置每次使用的连接,然后我不得不每次打开一个新的连接(而不会出现在池中的任何连接)。

Answer 1:

连接被释放回当你调用Close或Dispose连接上的游泳池...

源= SQL Server的连接池(ADO.NET)

因此,删除有关造成漏诊连接池的性能损失任何担心。
从代码的角度来看,差别应该是这样最小的using说明应始终使用



Answer 2:

using模式是更好,因为处置呼叫反正关闭连接,但作为奖金,即使使用内部出了差错连接被关闭。 例如,强制执行程序的异常,或只是一个回归外出使用范围的。 随着使用,您无需显式地关闭连接,这使得代码更易读。 作为另一种模式,连接必须尽快关闭。 /没有性能上的缺点,关闭打开的连接过于频繁,因为连接池将优化连接重用你。



Answer 3:

使用处置。 内部内出售其将关闭连接,所以你不必担心,这可以容易地检查足以与反射器或有疑问相似。

至于表现我还是会去的使用。 Windows已经启用的各种高速缓存(当然在ODBC),以确保再使用可重复请求相同的连接发生,因此,你应该不是真的需要担心的性能。



Answer 4:

除非你打算再不久的某个时候调用。开()

使用using(){}块。

如果你要很快在其他地方使用相同的连接,
调用.close(); 然后.open()等...
使你的类实现IDisposable ,并有连接的处置!

它仍然需要时间来创建连接对象



文章来源: Dispose the connection or Close the connection