关于三层结构存取速度问题,高手请帮忙

2001Wind 2003-10-17 08:52:35
开发了一个三层系统应用,在带宽只有1M的局域网内实施,采用DCOM协议。
采用方法是用clientdataset一次性把SQLServer上的记录集取下来,
问题来了:在一次性取大概十几万条记录的时候,大概要等上十分钟,而在此记录集的基础上用QuickReport打印预览时则等了十分钟也不出来结果。
请问有什么解决办法?
...全文
24 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
2001Wind 2003-10-22
  • 打赏
  • 举报
回复
问题搞定了,谢谢各位!
qiume 2003-10-17
  • 打赏
  • 举报
回复
用 packetrecord
huojiehai 2003-10-17
  • 打赏
  • 举报
回复
看一下这个例子分包取数
C:\Program Files\Borland\Delphi5\Demos\Midas\Pooler
C:\Program Files\Borland\Delphi6\Demos\Midas\Pooler
C:\Program Files\Borland\Delphi7\Demos\Midas\Pooler
huojiehai 2003-10-17
  • 打赏
  • 举报
回复
数据这么多一次性当然会出很慢啦
应分段取数
zhoutian618 2003-10-17
  • 打赏
  • 举报
回复
packetrecord:=100;
snowfog 2003-10-17
  • 打赏
  • 举报
回复
使用线程或者定时器分段取数据。
pingshx 2003-10-17
  • 打赏
  • 举报
回复
clientdataset设置
fetchoncommand:=false;
packetrecord:=100;
leapmars 2003-10-17
  • 打赏
  • 举报
回复
三层应用 最忌讳一次性把数据全部取出来! 这种做法极没有效率!

如果你的系统应用于局域网,客户数目不多,建议直接用 cs 两层结构!
wshuo 2003-10-17
  • 打赏
  • 举报
回复
为什么要一次性取下来?这是最不科学的做法,用clientdataset.commandtxt不行吗?或者说你使用数据库服务器的储存过程,都可以加快速度。如果还想快,不如用李维的改良办法。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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