ADO.Net连接池--->附

l由于每次正常连接数据库都会至少执行3个操作(1.登录数据库服务器2.执行操作3.注销用户),所以每次通过Connection向数据库服务器申请一个连接都比较耗时。【ado.net默认启用了连接池】
l演示:有池没池的差别(见备注1.)通过事件查看器查看效果。
l为了解决上述问题:ADO.Net采用了连接池的概念。
l*如何清空连接池?Connection的静态方法ClearAllPools()、 ClearPool()
l什么情况下需要禁用连接池?
•一般都不禁用。尤其是asp.net之类的程序,n多个用户频繁访问,但是大多数用户访问时采用的都是同一个连接字符串
•但如果某个应用程序有多个客户端,每个客户端访问时采用的都是各自的连接字符串,这时如果采用连接池,虽然每次打开连接的速度会变快,但是由于“池”的问题同时会保存多个打开的连接对象。

Ado.net连接池使用总结:

•1.第一次打开连接会创建一个连接对象。
•2.当这个连接关闭时(调用Close()方法时)会将当前那个连接对象放入池中。
•3.下一个连接对象,如果连接字符串与池中现有连接对象的连接字符串完全一致,则会使用池中的现有连接,而不会重新创建一个。
•4.只有对象调用Close(),的时候才会放入池中,如果一个连接对象一直在使用,则下次再创建一个连接对象发现池中没有,也会再创建一个新连接对象。
•在池中的连接对象,如果过一段时间没有被访问则自动销毁。
 
 

如果连接池中有对象,con.Open()的意思是去连接池中把对象取出来;

Close()看是关闭,其实是把Innerconnection放到了连接池中了。

posted @ 2013-06-15 13:31  Big.Eagle  阅读(228)  评论(0编辑  收藏  举报