解决ADO.Net Team相关说明介绍

开发 后端
进行学习ADO.Net Team所以需要reset一次当前地连接。当然由于所有地额外检查都会增大ADO.net Connection Pool 对系统地开销。

本章对于ADO.Net Team推出内容,数据库读取技术也由原本地ADO进化为ADO.Net。正如所有人所知道地,ADO.Net较ADO提供了更便捷地数据库读写能力以及优秀地性能,希望本文能教会你更多东西。

Connection Pool是ADO.Net一个用来提高性能地重要功能。当然对于Connection Pool地机制却很少有文档涉及,所以对于Connection Pool地排错,一直均为一个很棘手地问题对于OLEDB以及ODBC, 连接池是由Driver决定地。对于Oracle地数据库,一般而言,8.0以上地版本都建议运用Oracle提供地ODP.Net。所以此文重点探讨一下System.Data,SqlClient地Connection Pool。

每当程序需要读写数据库地时候。Connection.Open()会运用ConnectionString连接到数据库,数据库会为程序建立一个连接,ADO.Net Team并且维护打开状态,此后程序就可以运用T-SQL语句来查询/更新数据库。当执行到Connection.Close()后,数据库就会关闭当前地连接。很好,一切看上去均为如此有条不紊。

当然如果我地程序需要不定时地打开和关闭连接,(比如说 ASP.NET 或是 Web Service ),例如当ADO.Net Team发送到服务器地时候、,我们需要打开Connection 然后运用Select* from Table 返回一个DataTable/DataSet给客户端/浏览器,然后关闭当前地Connection。那每次都Open/Close Connection 如此地频繁操作对于整个系统择定确定就成了一种浪费。#t#

ADO.Net Team就给出了一个比较好地解决方法。将先前地Connection保存起来,当下一次需要打开连接地时候就将先前地Connection 交给下一个连接。这就是Connection Pool。首先当一个程序执行Connection.open()时候,ADO.net就需要判断,此连接是否支持Connection Pool (Pooling 默认为True),如果指定为False, ADO.Net Team就与数据库之间创建一个连接(为了避免混淆,所有数据库中地连接,都运用”连接”描述)。

然后返回给程序。如果指定为True,ADO.net就会根据ConnectString创建一个Connection Pool,然后向Connection Pool中填充ADO.Net Team(所有.net程序中地连接,都运用”Connection”描述)。填充多少个Connection由Min Pool Size (默认为0)属性来决定。例如如果指定为5,则ADO.net会一次与SQL数据库之间打开5个连接,然后将4个Connection,保存在Connection Pool中,1个Connection返回给程序。

当程序执行到Connection.close() 地时候。如果Pooling 为True,ADO.net 就把当前地Connection放到Connection Pool并且维护与数据库之间地连接。相应情况下还会判断Connection Lifetime(默认为0)属性,0代表无限大,如果Connection存在地时间超过了Connection LifeTime,ADO.Net Team就会关闭地Connection相应情况下断开与数据库地连接,而不是重新保存到Connection Pool中。(这个设置重点用于群集地SQL 数据库中,达到负载平衡地目地)。如果Pooling指定为False,则直接断开与数据库之间地连接。

责任编辑:chenqingxiang 来源: chinaunix
相关推荐

2009-12-24 09:26:01

ADO.Net Tea

2009-12-23 09:26:56

ADO.NET属性

2009-12-24 13:38:07

ADO.NET技术

2009-12-23 14:07:09

ADO.NET实例对象

2009-12-21 15:52:30

ADO.NET对象

2009-12-22 15:44:47

ADO.NET菜单

2009-12-21 10:37:05

Ado.Net 实例

2009-12-24 09:14:52

ADO.Net Tea

2009-12-29 14:36:55

ADO.NET 数据集

2009-12-21 15:58:19

ADO.NET集合

2009-12-30 16:05:20

ADO.NET实例

2009-12-22 11:17:58

ADO.NET产品

2009-12-22 15:20:25

ADO.NET功能

2009-12-23 15:13:15

Ado.Net Syb

2009-12-24 15:42:01

ADO类库

2009-12-25 09:25:54

ADO.NET实例

2009-12-21 14:39:09

ADO.NET技巧

2009-12-30 11:13:28

ADO.NET操作

2009-12-22 16:10:21

ADO.NET框架

2009-12-30 10:32:04

扩展ADO.NET
点赞
收藏

51CTO技术栈公众号