谈谈ADO.NET数据库连接池创建和分配

连接数据库是我们编程不可缺少的一部分,要保存数据就得连接数据库,这里我们就简单的看看ADO.NET数据库连接。建立池连接可以显著提高应用程序的性能和可缩放性。SQL Server .NET Framework 数据提供程序自动为 ADO.NET 客户端应用程序提供连接池。

创新互联公司是一家集网站建设,通化企业网站建设,通化品牌网站建设,网站定制,通化网站建设报价,网络营销,网络优化,通化网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

ADO.NET数据库连接池的创建和分配

当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。在以下示例中,将创建三个新的 SqlConnection 对象,但只需要使用两个连接池来管理这些对象。请注意,***个和第二个连接字符串的差异在于为 Initial Catalog 分配的值。

 
 
  1. SqlConnection conn = new SqlConnection();
  2. conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
  3. conn.Open();  
  4. // Pool A is created.
  5. SqlConnection conn = new SqlConnection();
  6. conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=pubs";
  7. conn.Open();  
  8. // Pool B is created because the connection strings differ.
  9. SqlConnection conn = new SqlConnection();
  10. conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
  11. conn.Open();  
  12. // The connection string matches pool A.

连接池一旦创建,直到活动进程终止时才会被毁坏。非活动或空池的维护只需要最少的系统开销。

ADO.NET数据库连接的添加

连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接将根据需要添加到池中,直至达到***池大小。当请求 SqlConnection 对象时,如果存在可用的连接,则将从池中获取该对象。若要成为可用连接,该连接当前必须未被使用,具有匹配的事务上下文或者不与任何事务上下文相关联,并且具有与服务器的有效链接。

如果已达到***池大小且不存在可用的连接,则该请求将会排队。当连接被释放回池中时,连接池管理程序通过重新分配连接来满足这些请求。对 Connection 调用 Close 或 Dispose 时,连接被释放回池中。

#T#警告   建议使用完 Connection 后始终将其关闭,以便连接可以返回到池中。这可以使用 Connection 对象的 Close 或 Dispose 方法来实现。不是显式关闭的连接可能不会添加或返回到池中。例如,如果连接已超出范围但没有显式关闭,则仅当达到***池大小而该连接仍然有效时,该连接才会返回到连接池中。注意   不要在类的 Finalize 方法中对 Connection、DataReader 或任何其他托管对象调用 Close 或 Dispose。在终结器中,仅释放类直接拥有的非托管资源。如果类不拥有任何非托管资源,则不要在类定义中包含 Finalize 方法。有关更多信息,请参见垃圾回收编程。

当前名称:谈谈ADO.NET数据库连接池创建和分配
转载来于:http://www.csdahua.cn/qtweb/news16/79466.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网