以下两种方法中的哪一个具有更好的性能?
using( var DB_Connection_s = new DBConnection() )
{
//todo: interact with database connection
}
要不就 :
DB_Connection_s.Close();
在末尾。
请问第一种方法使池概念没用? 因为如果我处置每次使用的连接,然后我不得不每次打开一个新的连接(而不会出现在池中的任何连接)。
以下两种方法中的哪一个具有更好的性能?
using( var DB_Connection_s = new DBConnection() )
{
//todo: interact with database connection
}
要不就 :
DB_Connection_s.Close();
在末尾。
请问第一种方法使池概念没用? 因为如果我处置每次使用的连接,然后我不得不每次打开一个新的连接(而不会出现在池中的任何连接)。
连接被释放回当你调用Close或Dispose连接上的游泳池...
源= SQL Server的连接池(ADO.NET)
因此,删除有关造成漏诊连接池的性能损失任何担心。
从代码的角度来看,差别应该是这样最小的using
说明应始终使用
该using
模式是更好,因为处置呼叫反正关闭连接,但作为奖金,即使使用内部出了差错连接被关闭。 例如,强制执行程序的异常,或只是一个回归外出使用范围的。 随着使用,您无需显式地关闭连接,这使得代码更易读。 作为另一种模式,连接必须尽快关闭。 /没有性能上的缺点,关闭打开的连接过于频繁,因为连接池将优化连接重用你。
使用处置。 内部内出售其将关闭连接,所以你不必担心,这可以容易地检查足以与反射器或有疑问相似。
至于表现我还是会去的使用。 Windows已经启用的各种高速缓存(当然在ODBC),以确保再使用可重复请求相同的连接发生,因此,你应该不是真的需要担心的性能。
除非你打算再不久的某个时候调用。开()
使用using(){}
块。
如果你要很快在其他地方使用相同的连接,
调用.close();
然后.open()
等...
使你的类实现IDisposable
,并有连接的处置!
它仍然需要时间来创建连接对象