作过MIS或ERP的高手来聊聊经验, 关于程序运行速度问题!欢迎灌水!(100分)

  • 主题发起人 主题发起人 hurryman
  • 开始时间 开始时间
H

hurryman

Unregistered / Unconfirmed
GUEST, unregistred user!
程序完成,却发现它运行的速度非常漫,用主菜单打开一个子窗体居然要5秒,
用户非常不满意!
大家谈谈,我的程序为什么回这么慢呢?
也许大家会觉得这个问题莫名奇妙,其实是想象各位讨教如何提高程序运行速度
我的程序运行实在太慢了
 
是不是一打开窗口就返回所有记录,有没有复杂的查询?
 
打开窗体后的数据记录有多少?
gz
 
可能主要是要打开数据集的原因吧,
 
各位说的很队。
对,就是打开数据集的原因,
好慢有啊,怎么办呢?
 
我这儿进行信息录入,主集4万条记录,大概有七八个子集,每个子集有8万条数据。
进入录入界面是很慢,大概需要1分钟,还不知道怎么优化呢。
还要排序,更慢了
 
用户打开窗口时不要取任何数据
select * from yourtable where 1 = 2
让用户自己选择选取多少数据,速度如果慢了那是他的事,不要自作主张
 
你要先說說你的系統架構是怎樣,才能分析原因的.
應該是數據集過大問題.
 
1、使用条件限制初始显示的记录数
2、使用多线程的方式查询显示数据
 
同意郭玉梁的说法。现在做的系统,都是不打开任何数据集,只有用户选择了要什么数据
时才去打开数据集。而且这么多数据,一次就全部打开好像也没什么意义。
 
首先建立窗体,然后立即显示。其他所有有关初始化、连接数据库、取数据等等所有花费
时间的操作,全部待窗体显示后在进行。这样,在用户的心理上就不会产生很大的等待感
觉。
 
对于主从结构,一次只处理一条主记录;
对于单表Grid结构,一次只处理部分记录;
总的来说,就是分段处理;若一次取出所有数据,这种系统别想用在多用户的情况下
 
用到的时候再打开,根据条件打开,可以提高部分速度
 
1、打开子窗体前调出一个显示AVI文件的窗体,这样,在用户的心理上就不会产生很大
的等待感觉。
2、在录数时SQL语句:select * from tablename where 1=0
3、在查询时SQL语句:select * from tablename where 过滤条件以减少打开的数据量。
 
打开子窗体的时候,不要做任何动作。
让用户动作后,在打开响应的数据表,
不用一次全部打开,用到时再打开。
 
用多线程,一面显示一面进行数据处理,这样看起来速度很快。
 
不打开任何数据集,用户选择了要什么数据时才去打开数据集,这样可以提高运行速度!!
 
对于一个数据量很大的系统,我不太赞同到使用的时候再打开数据集,因为那样的话
每完成一个功能都要等待,给用户的感觉更差。我倾向与把数据量很大且主要用于查询
统计的那一部分放在主界面创建时预读(需要将这部分处理放在专门的数据模板窗体中),
然后通过一个状态条来显示进度,通常来说程序启动时速度慢一点,用户是会很习惯的
(Windows不就是这样吗~~)。
 
但是,很多位置用到树型结构的东西,非要一打开就要有东西的呀。
还有许多位置的编号是自动的,窗体一打开,就要根据记录的数量编号呀。
我同意大家的说法,在调用前不不打开任何数据集或使用少量的,但我现在这种情况
可以这样做吗?我的编号根据数据记录的数量来编的,是时间+数据编号为单据的编号。
还有树型结构的东西,不能说FORM出来后还要用户按个什么东西,这样客户回说不方便,
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
756
import
I
后退
顶部