sqlconnection连接池

来源:互联网 发布:淘宝店铺出租平台 编辑:程序博客网 时间:2024/05/22 15:37

前段时间尝试连接数据库,然后调用sqlConnection.Close(), 最后再将该数据库删除,结果提示数据库正在使用,后来察看数据库进程情况,发现是自己在用该数据库,突然想到.Net支持连接池技术。sqlConnection.Closle()和sqlConnection.Dispose()并不会关掉数据库的物理连接。查看MSDN,结论如下:

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

连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接将根据需要添加到池中,直至达到最大池大小。对 Connection 调用 Close 或 Dispose 时,连接被释放回池中,而跟数据库的物理连接并没有断掉。连接池一旦创建,直到活动进程终止时才会被毁坏。非活动或空池的维护只需要最少的系统开销。

连接字符串中,有Pooling这个关键字,默认情况下,其值为true,即支持连接池技术。如果不想支持连接池技术,可以显式地将其赋值为false.另外Max Pool Size, Min Pool Size为池允许的最大和最小连接数。



原创粉丝点击