本文将深入介绍VS 2005附带的ADO.NET 2中的球型摄像机主要功能。
在本文中,我将介绍连接池的主要功能之一。
此功能是关键功能,在大多数业务应用程序或数据驱动的应用程序的性能中起着重要作用。
什么是连接池?连接池是重新使用您与数据库的连接的能力。 这意味着,如果在连接对象中启用“连接池”,则实际上可以启用对多个用户的连接重用。
默认情况下,连接对象中启用了连接池。 如果禁用连接池,则这意味着您创建的连接对象将不会再用于创建该对象的任何其他用户。
我应该启用/禁用连接池吗?让我们做一个例子,使用在启用/禁用应用程序中的连接池时所需的时间。
示例1(启用连接池):创建一个控制台应用程序,并将以下代码行放入Main Method中:
SqlConnection testConnection = new SqlConnection(@"Data Source=(local)\SQLEXPRESS;Initial Catalog=DEMO;Integrated Security=SSPI;");
long startTicks = DateTime.Now.Ticks;
for (int i = 1; i <= 100; i++)
{
testConnection.Open();
testConnection.Close();
}
long endTicks = DateTime.Now.Ticks;
Console.WriteLine("Time taken : " + (endTicks - startTicks) + " ticks.");
testConnection.Dispose();
]
运行应用程序,在我的机器上,时间差为:937626
示例2(禁用连接池):只需在连接字符串中添加Pooling = false即可。
运行该应用程序,在我的机器上,时差为:3906500 ticks
如果您测量差异,您将看到禁用连接轮询所需的时间是使用连接池的4倍。
在使用连接对象时,好的做法之一是尝试{..} catch {}最后{}块来围住代码。
在finally块上,您必须调用Conn.Close();。 或Conn.Dispose();
删除连接到该连接的所有资源。
你们中的一个人问调用Close或Dispose有什么区别,答案不使用它们两者,Dispose方法实际上在内部调用close方法,并删除该对象的所有已分配资源以进行垃圾回收,同时删除基础连接可以合并对象。
结论在应用程序中使用连接池可最大程度地利用与数据库和应用程序的物理连接。
谢谢,
纳塔拉让
<链接已删除>
From: https://bytes.com/topic/net/insights/695472-understanding-connection-pooling