数据库访问中,建立数据库连接的这个过程相对于对数据库的其他操作要耗费更多的时间和资源.所以对一些并行访问较多的系统,可以使用连接池来提高数据库的访问速度.
连接池中存放一些已经和数据库连接成功的数据库连接,每个连接都与一个连接字符串及其事务上下文相关联.连接字符串标识该连接连的是哪个数据库.
连接池允许应用程序从连接池中获取一个连接,而不是为每一个连接请求重新建立一个连接.
ADO.net默认对数据库的访问采用连接池的方式.如果不需要连接池,需要手动进行设置
pooling = false 对于Sqlconncetion,oledb service = -4 对于oledbconnection
当数据库进行第一次连接的时候,进行实际的物理连接.当数据库进行以后连接请求的时候,首先去查看连接池,通过对连接字符串的比较,看看连接池中是否有可用的数据库连接,如果有,直接用就行了,如果没有就创建一个新的数据库连接.
在采用连接池进行数据库访问时,对connection进行close/dispose操作,可以将数据库连接对象返回给连接池,实际的数据库连接不会关闭.但是如果采用禁用连接池的方式,则close操作会引发数据库物理连接的断开.在关闭数据库连接时需要确保关闭了所有用户定义的事务.
对数据库的访问应该遵循尽量晚的打开连接,尽量早的关闭连接.