注册 登录
Office中国论坛/Access中国论坛 返回首页

laimf的个人空间 http://www.office-cn.net/?68853 [收藏] [复制] [分享] [RSS]

日志

ACCESS数据库系统执行效率分析

热度 1已有 1671 次阅读2015-2-12 16:06 |个人分类:实例剖析| 数据库系统

     前几天,老朋友叫我升级一下我以前做的一个ACCESS数据库,是大概10年前做的,朋友还在使用,现在库差不多一共有60多个GB大小了,我自豪感油然而生,不过当我打开数据库,看里的一些代码,很让我脸红。原来当初很多代码都没有效率,一些数据库对象也做的比较松散。废话不多说,让我一一道来,让刚开始学习ACCESS的朋友得到一些感悟。

    先说数据库的结构吧,MDB+SQL的C/S模式,MDB采用链接表、ADO、DAO等综合方式处理中间环节的数据,同时也是客户端。SQL保存最终数据,同时保存了图片,所以体积膨胀的比较厉害,这是预料中。现在看来,减少了图片在计算机中的管理环节,还是值得的。现在看来,我采用这种系统结构也是很合理的,50多人同时使用过程中没有感觉卡顿,不过在做完业务,上传数据的时候有一些卡,时常有数据上传不成功的现象。

     分析:

     打开代码一分析,原来上传数据是将一张ACCESS的本地表所有数据合成一条记录,并追加到SQL服务器表中,采用ADO的方式处理的数据,如果很多客户端同时上传,10~30秒才能处理完。ADO因为要打开表,如果表很大的话,仅打开表动作就能搞死机。 select 之后不要用*代替字段名称,一定要仅把需要的字段罗列出来,同时加where把不要的记录过滤掉。有关系表,要小表在左边,大表放右边。到底在ACCESS中执行SQL代码 ,还是在SQL服务器中去执行SQL代码,或是ADO去一句一句执行,这个因地制宜,要分析的话,又得搞一个专题了。

     优化总结:

     改用纯SQL语句去处理了。很明显感觉到快!上传数据就是两三秒的事情。根据我个人的实际体验,能在服务器上处理,不影响整体性能,应该尽量在服务器上去处理数据,能用SQL尽量用SQL,但要少用游标之类的,万不得已采用ADO或者DAO,感觉DAO比ADO更方便。个人感觉ACCESS使用链接表,在2010中比在2003中速度快。

    今天泛泛而谈,以后有时间在谈点详细的吧。写东西头痛,今天到此结束。

    

发表评论 评论 (1 个评论)

回复 roych 2015-3-12 17:23
   没用过MSSQL,最近太忙了,没时间学。不过感觉在MSSQL里,很多人都喜欢用子查询。不知道是否比内联接查询快。

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-16 21:18 , Processed in 0.059004 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部