如何加速程序,数据库的(共300分,预付100分:)(100分)

  • 主题发起人 主题发起人 oceanwave
  • 开始时间 开始时间
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序用ACCESS做后台数据库,共二十三个窗体,一个数据模块。
在客户的AMD 3DNOW+32M内存的机器,进入程序居然要花上二分钟,被客户大骂。失败。
为什么呢?原来客户的旧程序是FOXPRO写的,同样的数据量,比我的快多了(虽然我的程序
写的比旧的完善)
我有两个疑问:
一、窗体是让系统创建呢?还是自已用代码创建?自己创建会快得多吗?
可是几个窗体太麻烦了。能详细讲讲这方面的东东吗?(100分)
二、我知道用包或者是DLL都会使程序更快,但我实在对这些方面一无所知,所以我想知道
如果学习包或者是DLL,应该从哪方面学起(因为一直通过DELPHI的IDE来写程序,所以对
类、方法都不是很了解),能否介绍一些可以入门上手的资料,特别是关于数据库方面的
实用方法(200分)
还有其它方法可以改善程序的运行效率吗?
先送上100分,完事儿一定给足分,决不食言,先谢过各位大侠:)
 
1。优化Access的连接,让打开数据库的时间缩短。
2。用SQL进行适当地数据量读取,不要都是读取所有的数据。
3。自己建立From,而不是由程序自动创建Form。
With TForm_DetailType.Create(Nil) do
begin
Try
ShowModal;
Finally
Free;
end;
end;

先看看上面的改动吧。
 
数据库大小?
建议:用ADO连接ACCESS数据库,尽量用Query,没有用的form先不要调入内存.
 
1.当然使用的是动态创建的方式,
2.使用Dll的方式不一定程序运行更快
 
数据库三十个表,大部分的表都五千以上的记录。
我也想用ADO,可ADO在主从表应用方面比BDE麻烦多了,而且有些错误处理也很麻烦,比如
说LOCATE的错误它就无法很方便的捕捉。我对主从表的访问一般都采用BATCHUPDATE方法。
 
把ado的补丁打上试试,ado也可以用事务的
用ado时,CursorLocation用clUseServer,可以使你的程序在数据检索时加快数倍
窗体采用create的方式动态创建,可以使你的程序启动时加快数倍
用不着dll就行了
 
我用的是D6,无所谓补丁,用CREATE后,程序速度确实提高了很多,但改动代码让我头痛死
了。这个问题要给分了。
另一个问题,大家可以到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=621836
去看看,有分给的,谢谢:)
 
还有上面几位老兄,如果对ADO主从表的处理有经验,且有代码的话,我也愿高分求之
特别是错误处理方面的,重新激起我对ADO的兴趣吧!
 
用DBISAM吧
在32M的机器上,用ADO或者BDE与ACCESS连接时,这个慢啊,无论谁都受不了的。
32M本来不多,再加上运行一些其它程序,内存所剩无几,无论你怎么优化,
内存都不能无中生有吧。

请用DBISAM,一个特殊的数据库引擎或者直接,不用任何第三方文件,
支持SQL查询, 占用内存小,速度也比较快。
弄一个试试。。

再不行就用DBF,反正DELPHI也支持

如果对DBISAM或者DBF也不满意。。。。。。。。。。。。。。。。加内存吧。
www.51delphi.com
 
to cch_b:
请问DBISAM能实现和BDE一样的CACHEUPDATE吗?如何实现,我的E文很差,不好意思,看
不懂帮助,呵呵:)
有例程吗?如果有,我愿意更加50分给你,分不多,就请帮帮忙了,谢谢!
 
建议一下,让你的客户换台机器吧,这样的机器,再优化也达不到预期效果
 
我想我说服他给我加钱都比说服他升级机器要容易得多,不过加钱,难噢!
 
基本同意cjf,要不换数据库
 
关于ado ,我通常用在三层结构中的应用服务器中,
确实很好用.
 
关于窗体的动态创建,我已按CJF兄的方法施行,
但在ACCESS的连接优化方面,我听得不大明白,请指教。
换数据库?会死人的,而且我相对对ACCESS较为熟悉,因为我以前的程序都是用ACCESS来
写的。有更有建设性的建议吗?谢谢!
 
因为客户要求的程序是小规模的应用系统,根据无需用三层系统,而且他们出的价钱也很
低,所以只能给他们做本地的系统。ADO方面我通过李维的书学习了很多,但在他的那本书
里也没能对一些问题做很好的说明与解释,而某些问题确确实实阻碍了我对程序编写的进展
,不得已,我不能花更多的时间去研究它,只能改用熟悉的BDE去做了。
但一直希望在大富翁上有高手能指点一二,最好是能给个完善而简单的例程,分数您开,我
想好东西总是物有所值的。
小弟在些先谢过大家:)
 
唉,程序员不值钱啊。我亦有同感,在某些人眼里,一个程序还不如一条XXM内存值钱!
1、换掉他的破机器。
2、不就是‘进入程序’慢吗?好办,除主窗体外,其它窗体自己创建,连数据库都不要打开,
进入登录界面后再后台悄悄连接。
3、Access不太好用,如果用桌面,还是Paradox比较好。
 
ado 的主从表用参数是很快的,类似于select * from *** where a=:a 从表定义
 
DELPHI的ADO是比BDE查询速度快多了,对数据库操作ADO最好用
 
to jacky1936:
主从表不是这么简单地,在新增主表记录状态下新增从表记录就有很多的工作要去做,
错误捕捉与处理也有很多工作去做。
to iwalk:
如何进行后台连接?能说详细点儿吗?我把数据模块由系统自动创建,因为数据表较多
所以连接的速度就较慢,如果解决呢?谢谢!
to xieyj:
ADO的好处是众所周知的,我最喜欢的是在速度和发布方面,但我一直未能琢磨出完善、
稳定的作法,所以才向大家求救的。
 
后退
顶部