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

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

我们是用vb6+sql2000开发的一个数据库程序
用的是adodc控件直接连接托管的服务器上安装的sql2000数据库
这个程序一般上午运行的速度还可以(可能是因为客户少系统用的不是太频繁)
中午或者下午客户消费的多了之后,系统就开始巨慢(肯定不是网络原因,因为是多个分店一起用,分布在一个城市的各个角落)
用企业管理器的进程信息查看
里面会有很多进程,有时候有台机器会产生堵塞,将那台机器关掉就可以
现在问题是,都是一样的操作
为什么下午忙的时候会产生堵塞
当操作窗体打开后,adodc会打开数据库,直到该窗体被关闭,有时候打开一个窗体会出现10多个连接
但是,该连接再不做操作的时候,也不会定时刷新
急!急!!急!!! --------------------编程问答-------------------- 一解多题。 --------------------编程问答-------------------- 用adodc控件连数据库就是问题多多而且非常耗资源,由于adodc控件是经过封的用起来比较方便,但可编程性不高而且效率低释放资源又慢,只能用作一般简单的数据连接绑定,像你这样繁忙的远程连接数据库工作,建议你还是用ADO对象吧,ADO对象编程比较灵活而且速度快效率高,远程连接数SQL据库是它的强项。
--------------------编程问答-------------------- 来看看学习下 --------------------编程问答-------------------- ADO控件会锁定表
建议用ADO对象 --------------------编程问答-------------------- 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 ..."
     --------------------编程问答-------------------- 1.数据库连接对象用完后即时地关闭
2.优化一下执行时间较长的数据库脚本,尽可能放到服务器中,或写成StoreProcedure
3.检查一下数据库最大连接数量
....
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,