原文:http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx

1:合并数据库连接

   与数据库服务器建立连接是非常消耗系统资源的,如果某个系统需要查询某个数据库服务那么必须首先建立起与该数据库的连接然后再执行查询。
   你是否能够感觉到当您在客户端使用相同的查询向服务器提交查询信息的时候结果的返回会越来越快。从服务器端将数据返回数据到客户端有一种机制产生了以上的结果,而这种机制就是在ADO之间建立连接
   我们通常是把与数据库连接的信息存储在配置文件中,利用它在系统中频繁地打开与关闭与数据库的连接。这样我们不管是访问多大或多小的数据我们都是用的一样的连接。
   IIS中的ADO.NET有一种叫做连接池的技术是解决以上问题很好的方法。当应用程序第一次发生请求的时候建立与数据库的请求而当系统关闭数据库连接的时候。ADO.NET没有完全的销毁连接,而是把这个连接对象放到连接池中并保留对他的引用。当下一次发生请求的时候ADO.NET从连接池中调出连接运用到本次查询中。这样可以提高一定的效率。

2:创建连接池

   连接池和连接字符串是紧密联系的。一个连接池有进程,应用程序域以及连接字符串来确定的。(process,domain ,connection string
   当我们利用ADO.NET向数据库发送查询的时候,在相同的进程和应用程序域中ADO.NET利用确定的连接字符串匹配连接池中的连接对象。如果找到并且该连接空闲可用那么就得到该连接用于本次请求,否则就建立新的连接并把该连接添加到连接池中。在向连接池添加连接的时候不能超过连接池最大连接数量。
   我们可以利用