MIDAS做的程序连接太慢(2分钟),请各位献计献策

tlc97 2001-03-07 07:50:00
bcb5.0做了个数据库程序,由于客户端机子种类太多,我做成三层结构,唯一的目的是免
去配置bde和装数据库客户端,但现在的问题是客户连接数据库时取一20000条记录的表竟然花去2分钟,这样的速度让人难以忍受,各位有什么办法提高速度?
数据库:sql server7.0/win98
程序服务器采用单线程模式,用tcp/ip连接(有win95,无法用dcom)
...全文
312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tlc97 2001-03-09
  • 打赏
  • 举报
回复
用Query控件做的确快一点,但在修改时很慢,
现经过全面测试,时间花费最大的是应用程序服务启动,不连接任何数据库,要23-25秒
连接数据库取20000条记录3秒,数据打包传到客户端11秒
如果用ADOTable在程序服务器,要花8-9秒才能返回数据
还有,一不小心用了single模式,还能改么?
comanche 2001-03-08
  • 打赏
  • 举报
回复
这种速度上的问题可谓是经典。
小弟也有同感,就BDE和ADO两种常用连接而言,ADO数据大于4000条就让人无法接受,BDE好一点但多于10000条也是……怎么办才好?只好放弃 Session Pooling的支持,而使用有状态对象。每次ClientDataSet->PacketRecords设为个1000, 就可以接受了,但Locate就不能再用了,这样为同样下载所有记录。

另我有一小问题,你的三层服务端是用BCB写的?那怎样实现Apartment?就我实际观察发现,BCB5并没实现 Apartment方式。所以所有用户只有一用户在Active。三层下BCB的BUG还太多了,所以服务器我都用DELPHI……

还有一个我要指个正,有95的网络并不一定就不能用DCOM,DCOM只是对网络中要求一定要有一台主域控制器,对于95的机器要运行DCOM要装一个 DCOM95补丁
Sunny_Yirui 2001-03-08
  • 打赏
  • 举报
回复
如果每次更新都POST,速度肯定慢!!
猛禽 2001-03-08
  • 打赏
  • 举报
回复
同意Commanche
ClientDataSet->PacketRecords不要用-1,设小一点就快了,毕竟一次看的东东有限,只是不能用locate,但用SQL更好。
至于POOLING,MTS/COM+的POOLING更好用。
我不懂电脑 2001-03-08
  • 打赏
  • 举报
回复
是不是网速慢
ensoniq 2001-03-08
  • 打赏
  • 举报
回复
用WHERE或者HAVING语句过滤啊?
不过我做的是两层的,对你的三层可能不适用。
ensoniq 2001-03-08
  • 打赏
  • 举报
回复
你的SQL语句是怎么写的?是不是把表里的什么东西都返回了啊?那样自然慢了。
tlc97 2001-03-08
  • 打赏
  • 举报
回复
我的网络是100M以太网,服务器端用ADOTable连接,用Query返回的数据无法修改
我不知在客户端如何过滤数据,如果设ClientDataSet的filter是没用的
dcom95我没有,同时以后发布可能麻烦些
因要在1周内做出初步的模型给老总看,我用了很多DBEdit只类的东西,只有用Table取数据
这样的确影响了速度,下午准备改BDE连接试试
comanche(太可怕):我也是用delphi写的服务器,没注意bcb有没apartment
也许有空时midas是好东西,但现在于我是噩梦

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧