当前位置:编程学习 > VB >>

vb6+sql2000的程序对服务器经常堵塞

我们是用vb6+sql2000开发的一个数据库程序
用的是adodc控件直接连接托管的服务器上安装的sql2000数据库
这个程序一般上午运行的速度还可以(可能是因为客户少系统用的不是太频繁)
中午或者下午客户消费的多了之后,系统就开始巨慢(肯定不是网络原因,因为是多个分店一起用,分布在一个城市的各个角落)
用企业管理器的进程信息查看
里面会有很多进程,有时候有台机器会产生堵塞,将那台机器关掉就可以
现在问题是,都是一样的操作
为什么下午忙的时候会产生堵塞
当操作窗体打开后,adodc会打开数据库,直到该窗体被关闭,有时候打开一个窗体会出现10多个连接
但是,该连接再不做操作的时候,也不会定时刷新

谢谢帮忙!如有解答者,回复QQ:1057012484(小龙女)
--------------------编程问答-------------------- 可能是n个原因,多操作的不建议使用adodc。 --------------------编程问答-------------------- 用ADODB对象,即用即连即放.... --------------------编程问答-------------------- 有锁表操作吧? --------------------编程问答-------------------- 建议:合理少用事务,尽量做到取到数据就马上释放资源! --------------------编程问答-------------------- 1,用ado对象打开记录集,记录集不用时关闭 
  dim rs as new adodb.recordset 
  if rs.state <>adstateclosed then rs.close 
  rs.open "select ... from 表名 where ",conn,adopenkeyset,adlockreadonly 
  ... 
  ... 
  rs.close 

2,增加记录用:conn.execute "insert into 表名(...) values(...)" 
 修改记录用:conn.execute "update 表名  set ... where ..." 
 删除记录用:conn.execute "delete from 表名 where ..." 

3,服务端安装SQL最新补丁  --------------------编程问答--------------------
引用 5 楼 leftie 的回复:
1,用ado对象打开记录集,记录集不用时关闭
   dim rs as new adodb.recordset
   if rs.state  <>adstateclosed then rs.close
   rs.open "select ... from 表名 where ",conn,adopenkeyset,adlockreadonly
   ...
   ...
   rs.close

 2,增加记录用:conn.execute "insert into 表名(...) values(...)"
  修改记录用:conn.execute "update 表名  set ... where ..."
  删除记录用:conn.execute "delete from 表名 where ..."

 3,服务端安装SQL最新补丁


严重同意~~~~~~~~
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,