ADO.Net连接池--->附
2013-06-15 13:31
225 查看
l由于每次正常连接数据库都会至少执行3个操作(1.登录数据库服务器2.执行操作3.注销用户),所以每次通过Connection向数据库服务器申请一个连接都比较耗时。【ado.net默认启用了连接池】
l演示:有池没池的差别(见备注1.)通过事件查看器查看效果。
l为了解决上述问题:ADO.Net采用了连接池的概念。
l*如何清空连接池?Connection的静态方法ClearAllPools()、 ClearPool()
l什么情况下需要禁用连接池?
•一般都不禁用。尤其是asp.net之类的程序,n多个用户频繁访问,但是大多数用户访问时采用的都是同一个连接字符串
•但如果某个应用程序有多个客户端,每个客户端访问时采用的都是各自的连接字符串,这时如果采用连接池,虽然每次打开连接的速度会变快,但是由于“池”的问题同时会保存多个打开的连接对象。
•2.当这个连接关闭时(调用Close()方法时)会将当前那个连接对象放入池中。
•3.下一个连接对象,如果连接字符串与池中现有连接对象的连接字符串完全一致,则会使用池中的现有连接,而不会重新创建一个。
•4.只有对象调用Close(),的时候才会放入池中,如果一个连接对象一直在使用,则下次再创建一个连接对象发现池中没有,也会再创建一个新连接对象。
•在池中的连接对象,如果过一段时间没有被访问则自动销毁。
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放到了连接池中了。
相关文章推荐
- ADO.NET 2.0技术内幕_连接池
- ADO.NET中SQL Server数据库连接池
- ADO.NET连接池FAQ
- 重整ADO.NET连接池相关资料
- ADO.NET连接池
- SQL Server 连接池 (ADO.NET) MSDN
- SQL Server 连接池 (ADO.NET)
- <转> ADO.NET实用经验
- ADO.NET中连接池状态的跟踪
- 关于ADO.Net连接池(Connection Pool)的一些个人见解
- 关于ADO.Net连接池(Connection Pool)的一些个人见解
- 浅谈如何更好的打开和关闭ADO.NET连接池
- 编码实现>微软数据访问技术ADO.NET(包括)>连接数据库
- ADO.net 连接池
- ado.net连接池效果
- ADO.net 的连接池
- asp.net ADO.NET连接池使用与优化
- ADO.NET数据库连接池研究(一) -查看连接池数 (转)
- c# Ado.net连接池
- ASP.NET MVC- EF返回连接池用ADO.NET方式访问数据库