ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
连接池的管理
连接池的管理:

对于访问量高的系统,每次创建一个连接都会消耗一定的资源,我们可以事先创建好一定数量的连接放入连接池中提供给用户使用,用户使用完后把连接返回连接池,这里我就来说说连接池的管理。



首先,让我们来看看连接池的概念:

1。连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建过程。

2。当应用程序请求一个连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接;当应用程序使用完连接后,该连接被归还给连接池而不是直接释放。



优点:

1。使用连接池的最主要的优点是性能。

2。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的(网络)距离,而且这个过程通常是一个很耗时的过程。而采用数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到数据库服务器,这样就节省了时间。



缺点:

1。数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库(这意味着资源的浪费)。

ps:这必须要求开发人员在开发时估计这个系统最大提供的数量是多少。



池的创建和分配

当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。



在以下示例中,将创建三个新的 SqlConnection 对象,但只需要使用两个连接池来管理这些对象。请注意,第一个和第二个连接字符串的差异在于为 Initial Catalog 分配的值。



SqlConnection conn = new SqlConnection();

conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";

conn.Open();

// 连接池A创建了



SqlConnection conn = new SqlConnection();

conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=pubs";

conn.Open();

// 连接池B创建了,因为ConnectionString与A不匹配



SqlConnection conn = new SqlConnection();

conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";

conn.Open();

// 使用A的连接池,因为ConnectionString与A匹配



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



连接的添加

连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接将根据需要添加到池中,直至达到最大池大小。



当请求 SqlConnection 对象时,如果存在可用的连接,则将从池中获取该对象。若要成为可用连接,该连接当前必须未被使用,具有匹配的事务上下文或者不与任何事务上下文相关联,并且具有与服务器的有效链接。



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



警告 建议使用完 Connection 后始终将其关闭,以便连接可以返回到池中。这可以使用 Connection 对象的 Close 或 Dispose 方法来实现。不是显式关闭的连接可能不会添加或返回到池中。例如,如果连接已超出范围但没有显式关闭,则仅当达到最大池大小而该连接仍然有效时,该连接才会返回到连接池中。

注意 不要在类的 Finalize 方法中对 Connection、DataReader 或任何其他托管对象调用 Close 或 Dispose。在终结器中,仅释放类直接拥有的非托管资源。如果类不拥有任何非托管资源,则不要在类定义中包含 Finalize 方法。有关更多信息,请参见垃圾回收编程。



连接的移除

如果连接生存期已过期,或者连接池管理程序检测到与服务器的连接已断开,连接池管理程序将从池中移除该连接。请注意,只有在尝试与服务器进行通信后,才可以检测到这种情况。如果发现某连接不再连接到服务器,则会将其标记为无效。连接池管理程序会定期扫描连接池,查找已释放到池中并标记为无效的对象。找到后,这些连接将被永久移除。



如果存在与已消失的服务器的连接,那么即使连接池管理程序未检测到已断开的连接并将其标记为无效,仍有可能将此连接从池中取出。当发生这种情况时,将生成异常。但是,为了将该连接释放回池中,仍必须将其关闭。



字符串关键字:

Connection Lifetime 0 当连接返回到池中时,将对它的创建时间和当前时间进行比较,如果时间间隔超过由 Connection Lifetime 指定的值(以秒为单位),则会毁坏该连接。在聚集配置中可以使用它来强制在运行服务器和刚联机的服
 
 
本站关键词:
|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂||东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有