主窗体,启动太慢。(100分)

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

Hecules

Unregistered / Unconfirmed
GUEST, unregistred user!
我作的是:MDI程序。
开发环境:DELPHI6+SQLSERVER2000
自动创建的窗体,不多,只有:主窗体和数据模板。
程序结构,是:C/S。
在局域内运行,正常。而把,客户端,放到外地,用:ADSL上网。来运行。
启动程序,打开主窗体时,太慢了。足足要等三分钟,
(服务器端,是:专线。2M带宽,客户端,是:ADSL虚拟拨号。1M带宽)
请问,是何故?如何提高启动时的速度。
谢谢。
(分不够,可以再加。)
 
你在启动的时候,不要连接数据库不就可以了?
当然,数据库在后面再连,就是在确认登入时不在连接。
 
SQLServer用于Internet网上本来就不推荐,
用三层吧,自己写中间件服务器来处理业务
逻辑,而且事务性,安全性方面都比直接连接要好得多!
 
对呀,数据库用在Internet上本来就不合适.
 
把数据库所在的机器配置成WINS服务器
运行客户端的机器的虚拟拨号连接使用WINS试试,
因为很多时候这些速度慢都是由于取计算机名引起的。
 
但,给我的感觉,慢,不全是因为联接了数据库引起的。
因为:登录窗口,出现的很快呀。登录窗口出现,数据库已经联接上了。
给我的感觉,是因为:在主窗口,中,USES 了许多的窗口(就是:菜单项要用到的)。
但,这些窗口,都是动态创建的。
为什么会这样?
 
use再多窗口也不会慢,有没有可能登录窗口虽已出现,但数据库仍在连接?
 
在局域内运行,正常。
是不是窗口登陆有大量的数据库操作?
远程数据传送可是很慢的.
我公司系统就采用把很多数据用dat文件放在本地机上.有改动让客户更新.

又szf的想法有道理,值得考虑.
 
登录。窗口。有个登录的验证过程。
(验证通过后,才后进入主窗口。)
所以。进入主窗口,之前。数据库已经联接了。
 
看看各单元文件的initialzation部分是不是有数据库操作
 
To:xianjun
没有。
 
那就检查TDatabase(或其它相应的数据库连接部件),看看它的KeepConnection属性是真是假
或者你在一些关键位置写时间值到日志文件,再分析它,就知道在哪一段花费的时间多了。
 
To:szf
请问:是:KeepConnection属性是真是假,的原因?
我的想法,是在程序中,只用一个联接。在程序开启时,联接,
程序退出时,断开。所以:联接的:KeepConnection是真。
难道,要,在使用数据控件时,才打开联接?


 
to hecules:那你已经做对了呀,看来只能写日志文件看是哪耗时了。
 
我的程序,是这样的:
在主窗口的:OnCreate事件中,调用:登录窗口,来验证:用户名和密码。
正确,返回。不正确,系统终止。
登录的窗口,出现的比较快。输入完用户名和密码后,系统好象死机了一样,
等三五分钟,才进入到主窗口。
登录的窗口,之前,已经联上了数据库。并且,保持联接。
自创建的窗口,只有:数据模板和主窗口,为什么:登录的窗口出现的快,
而主窗口出现的很慢。
请指点一二。
谢谢!
 
你還把它改成B/S結構的要好一點,C/S用這种方式,是有點慢!
 
请问:
有没有办法。在C/S。结构下,在:Internet环境中使用。
让我的:程序启动,快点点呢?
 
是不是你的数据库很大!
建议在active:=true即可
你是用的ADO还是BDE?
如果是BDE最好将他的缓存设大些!
 
同意所有楼上。
 
是不是:只有一条路可走,把它作成B/S结构了??
看来。我的程序要:走向B/S时代了。
 

Similar threads

回复
0
查看
718
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部