读书人

Connection高手解答绝对有价值的讨论

发布时间: 2012-01-18 00:23:26 作者: rapoo

Connection高手解答,绝对有价值的讨论!★★
当一个程序启动后第一次与MSsql 建立连接(Connection)后,然后不断操作INSERT,SELECT,每次多打开Recordset后释放了。
只是没有去关闭Connection连接,因为后面还会不停的进行操作。

问题:程序是24小时运行,不停的查询数据库,需要每次都要断开与服务器的连接吗?执行INSERT,SELECT时,还是又创建了的新连接吗?

个人理解:程序第一次连接后就不要再Connection.close了,因为后面还需要不停的执行数据库。不断的断开再连接可能需要消耗更大资源。

发现的新问题是:按照这样好像程序运行几天后,也就是执行2-3万次INSERT,SELECT后,程序突然提示错误[Microsoft][ODBCSQLServerDriver][SQLServer]超时过期:
有时候::[Microsoft][ODBCSQLServerDriver][SQLServer]没有足够的内存来允许此查询.
难道是连接的次数到了。耗尽了连接池内可用连接的数量!

最近一直再考虑这问题,郁闷! 需要每次去Connection.close???

希望有经验的人帮助一下!



[解决办法]
当然了,一定要有好的习惯,new对象后用完需关闭,
如不释放一定会把你的系统资源吃光的
[解决办法]
关注...
我也是打开一个全局Connection后就一直不关闭的
[解决办法]
根据需要动态设定关闭。你这种情况可以通过检测时间长度,达到一定时间可以关闭连接,然后再次进行连接。关闭时禁止操作数据库,或都将你要操作数据库的动作存入对列,当数据库能用时,按时间有次序的进行数据库操作。
[解决办法]
多年ADO +SQLServer 的经验表明, Connection 最好是用完就关闭并 Nothing 的好!
其实 重复打开同一个 连接字符串的连接并不会消耗多余的时间,因为 ADO 和SQL 本身都有
连接池缓存,同个连接只会被直接复制。
随时关闭的好处就是 为SQL 有限的连接数提供空间。

读书人网 >VB

热点推荐