本人最近为公司开发了一个VB+Access的图纸管理系统,包括来图,绘图,检图,编程,图纸上传等等一系列的流程管理,还有用户管理,权限管理等等其他一些辅助性的模块,分成不同的界面进行管理。数据库放在服务器上面,在测试之前导入了以前的老系统的数据有七、八万条,现在单机功能测试是没有问题了,用户比较满意,速度也比较快。但是当多用户测试的时候速度非常慢,特别是登陆的时候居然要等个一两分钟,登录之后每点击打开一个界面也都要至少四五秒。这样的系统肯定是不能满足用户需要的。
我也想了一些优化措施,比如在主要的表上建立索引,对象用完之后释放资源。稍有改善,但是还是非常不满意。
现在兄弟我垂头丧气,日暮途穷,无计可施,辛苦做成的程序不能使用,这真是最最悲哀的事情,就好像把美女骗到了房间扒掉了衣服到了最后一步自己却解不开皮带了。唯有冰天雪地裸睡钢板以示我的诚心,上穷碧落下黄泉,中间的我好可怜!俗话说得好,帮兄弟一把,胜造七级浮屠。盼望VB高手出手相助,临表涕零,不知所云,呜呼哀哉~
我也想了一些优化措施,比如在主要的表上建立索引,对象用完之后释放资源。稍有改善,但是还是非常不满意。
现在兄弟我垂头丧气,日暮途穷,无计可施,辛苦做成的程序不能使用,这真是最最悲哀的事情,就好像把美女骗到了房间扒掉了衣服到了最后一步自己却解不开皮带了。唯有冰天雪地裸睡钢板以示我的诚心,上穷碧落下黄泉,中间的我好可怜!俗话说得好,帮兄弟一把,胜造七级浮屠。盼望VB高手出手相助,临表涕零,不知所云,呜呼哀哉~
-------------------------------------
这话有意思.七八万条数据,用Access来跑,确实是个问题,楼主是否想过,用sql server2000来代替Access
你已经建索引了,速度还是那么慢,那还能什么办呢?
既然有服务器,换 SQL Server 吧。
兄弟,我当然不会把上传的图纸放到数据库里面,我只把上传的文件名,保存路径,上传人,上传时间保存在一个表里面,上船的图纸我是放到服务器上面一个专门的文件夹里面,所以不是这个问题。至于有兄弟提到的安装sql server服务器,因为公司现在打击盗版,要安装正版的要产生费用,申请比较麻烦,不过我试一下了。一定要把我的皮带给解开了拿下美女。
还有就是你的所谓多用户的数量大致是多少个?10个以内,还是百个以内?还是千个以内?
还有就是 SQL Server 的确有桌面版是免费的,你可以到MS下载的,当然,免费版本的SQL Server的能力与收费的企业版对比,是有不足之处,如管理工具和数据库支持大小之类的,不过相对access来说,是比access要强的,如网络支持、查询速度、查询能力、存储过程、数据量支持大小、稳定性等等。
比如你说的加载窗体很慢, 其实完全可以插入计时代码看观测到底是加载到哪一块拖累了系统.我也做过一些数据库方面的应用. 说说我的经验.
先说数据库,access本身是一款桌面型数据库, 虽说也支持多用户, 但是毕竟性能有限, 这是第一个值得怀疑的地方. 所以你可以观测一下执行一个远程查询或者数据库连接所花费的时间.再说一下网络, 这也是一个容易出问题的地方. 本地局域网络还好一些, 一般至少是100M的.
但是也有某些时候是外网+VPN方式访问,或者直接外网防火墙开端口访问, 这种情况下受到外网速率的限制就很大. 专线也是一样(它只是相对稳定和保密性高而已), 我就试过在2M的mpls上花10分钟连接数据库的情况.还要结合数据集的规模. 如果表记录比较多的话, 网络开销不可忽视. (可以通过很少记录的表来对比测试)服务器的性能有时也会制约数据库性能, 这个你可以在多用户连接的时候直接查看服务器的CPU和内存负载.
根本问题是选错了数据库。