SqlConnection就一定要关闭吗?
来源:互联网 发布:js写日期 编辑:程序博客网 时间:2024/05/01 22:28
http://www.cnblogs.com/jjstar/archive/2004/06/10/14697.aspx
按照ms的说法,数据库连接属于非托管资源,在.net下使用后一定要close,这样才能避免资源泄露。其实我并不这么认为,我觉得只要控制住数据库的连接数量就可以了。那么如何控制连接数量呢?控制连接数量实际上就是控制使用数据库的组件的实例化的数量。这好办,用COM+的对象池就可以了。
具体的实践如下:
1、建立一个从ServicedComponent继承的类
2、声明使用对象池
3、在该类的构造函数中打开对数据库的连接,并声明不使用ado.net提供的连接池。应该在该函数中尽量把所有初始化工作做完,这样可以更好地利用对象池
4、如果该类的方法不会被client频繁调用,那么应该声明JITA
5、写数据库访问相关方法,对数据库操作后,不关闭SqlConnection
6、重写CanBePooled方法,如果SqlConnection是open的状态,那么就声明可以被pooled
7、写client调用方法,对刚才写好的类的数据库访问方法进行调用,调用后一定要dispose该类,以便通知对象池回收
经测试证明,在大访问量的情况下,速度要比关闭数据库连接的ServicedComponent快,但是付出的代价是数据库增加了约连接池同等数量的线程,并且可连接数量减少。
- SqlConnection就一定要关闭吗?
- 是男人就一定要成熟稳重吗?
- 计算机就一定要采用二进制吗?
- sqlconnection
- 付出就一定要回报?
- 关闭浏览器session就消失了吗
- 一定要记得把PreparedStatement关闭
- DataReader用完后一定要关闭!
- 学了Java就一定要使用Java进行软件开发吗?
- NHibernate不支持复杂的linq,就一定要用DataTable这么低级吗
- 谁说老百姓就一定要买得起房?
- 网络SEO就一定要精通数据分析
- C# 读写文件后一定要关闭
- syskey?真的启用就无法关闭吗?
- syskey?真的启用就无法关闭吗?
- 浏览器关闭后,Session就销毁了吗?
- 浏览器关闭后,Session就销毁了吗?
- 浏览器关闭后,Session就销毁了吗?
- 平台(paltform device)设备的注册
- Wince编程小问题总结(设置字体、窗口最小化、开机自启动等)
- Performance verifying for Sqlite in-memory mode.
- root密码忘记处理方法
- 软件随想录(local.joelonsoftware.com/wiki)-2009年03月09日 如何扮演程序经理的角色? - How to be a program manager
- SqlConnection就一定要关闭吗?
- 字节对齐提高执行效率
- 进程调度
- Statistics Analysis【TUNNING 12】【每日一译】--2013-1-20
- Ubuntu下安装jdk
- 关于生产者与消费者模型的概念
- Highcharts翻译系列十:arearange区域排列图VSareaspline区域曲线图VSareasplinerangeVSbar条状图
- 手把手教你写Linux I2C设备驱动
- Wcf配置TCP协议小结