ASP.NET数据库连接池设置浅析

开发 后端
ASP.NET数据库连接池是如何实现的?ASP.NET数据库连接池的优缺点又是什么?ASP.NET数据库连接池常用的一些操作是什么?本文都将给你一一介绍。

对于ASP.NET数据库连接池可以使用一组名称-值对以链接字符串的形式配置链接池。例如,可以配置池是否有效(默认是有效的),池的***、最小容量,用于打开链接的排队请求被阻断的时间。下面的示例字符串配置了池的***和最小容量。

"Server=(local); Integrated Security=SSPI; Database=Northwind;
Max Pool Size=75; Min Pool Size=5"

ASP.NET数据库连接池摘要

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

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

如何实现ASP.NET数据库连接池

确保你每一次的连接使用相同的连接字符串(和连接池相同);只有连接字符串相同时连接池才会工作。如果连接字符串不相同,应用程序就不会使用连接池而是创建一个新的连接。

ASP.NET数据库连接池优点

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

ASP.NET数据库连接池缺点

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

技巧和提示

1.当你需要数据库连接时才去创建连接池,而不是提前建立。一旦你使用完连接立即关闭它,不要等到垃圾收集器来处理它。

2.在关闭数据库连接前确保关闭了所有用户定义的事务。

3.不要关闭数据库中所有的连接,至少保证连接池中有一个连接可用。如果内存和其他资源是你必须首先考虑的问题,可以关闭所有的连接,然后在下一个请求到来时创建连接池。

ASP.NET数据库连接池FAQ

1.何时创建连接池?

当***个连接请求到来时创建连接池;连接池的建立由数据库连接的连接字符创来决定。每一个连接池都与一个不同的连接字符串相关。

当一个新的连接请求到来时如果连接字符串和连接池使用的字符串相同,就从连接池取出一个连接;如果不相同,就新建一个连接池。

2.何时关闭连接池?

当连接池中的所有连接都已经关闭时关闭连接池。

3.当连接池中的连接都已经用完,而有新的连接请求到来时会发生什么?

当连接池已经达到它的***连接数目时,有新的连接请求到来时,新的连接请求将放置到连接队列中。当有连接释放给连接池时,连接池将新释放的连接分配给在队列中排队的连接请求。你可以调用close和dispose将连接归还给连接池。

4.我应该如何允许连接池?

对于.NET应用程序而言,默认为允许连接池。(这意味着你可以不必为这件事情做任何的事情)当然,如果你可以在SQLConnection对象的连接字符串中加进Pooling=true;确保你的应用程序允许连接池的使用。

5.我应该如何禁止连接池?

ADO.NET默认为允许数据库连接池,如果你希望禁止连接池,可以使用如下的方式:

1) 使用SQLConnection对象时,往连接字符串加入如下内容:Pooling=False;

2) 使用OLEDBConnection对象时,往连接字符串加入如下内容:OLE DB Services=-4;

ASP.NET数据库连接池设置和操作的基本信息就向你介绍到这里,希望对你有所帮助。

【编辑推荐】

  1. ASP.NET学习之ASP.NET概述
  2. ASP.NET优点的十一方面浅析
  3. ASP.NET数据库连接浅析
  4. ASP.NET数据库连接在web应用程序中的配置浅析
  5. ASP.NET数据库连接实例浅析
责任编辑:仲衡 来源: 百度空间
相关推荐

2009-07-28 17:36:21

ASP.NET数据库连

2009-07-29 09:12:31

ASP.NET数据库连

2009-07-31 09:57:47

ASP.NET数据库缓

2009-07-27 17:58:10

ASP.NET数据库编

2021-08-12 06:52:01

.NET数据库连接池

2009-08-05 15:40:49

ASP.NET连接数据

2009-06-24 07:53:47

Hibernate数据

2010-05-25 08:49:33

连接MySQL

2009-07-31 17:07:40

ASP.NET数据库连

2009-08-05 09:38:28

SQL Server数

2009-06-26 14:41:48

ADO.NET

2009-07-28 17:49:44

ASP.NET数据库连

2011-08-01 23:34:34

ASP.NETOracle

2011-07-12 14:37:47

ASP.NET链接字符串

2010-06-07 14:34:49

连接MySQL 数据库

2010-03-18 15:09:15

python数据库连接

2009-06-15 13:46:00

netbeans设置数据库连接池

2009-08-05 13:37:40

ASP.NET配置设置

2017-06-22 14:13:07

PythonMySQLpymysqlpool

2019-11-27 10:31:51

数据库连接池内存
点赞
收藏

51CTO技术栈公众号