易表在线答疑技术与交流用户社区 → 我的这个系统太慢了,有没有办法解决这个问题?


  共有12815人关注过本帖树形打印复制链接

主题:我的这个系统太慢了,有没有办法解决这个问题?

帅哥哟,离线,有人找我吗?
ylm
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2320 积分:350 威望:0 精华:0 注册:2006/8/11 10:55:00
  发帖心情 Post By:2006/9/28 19:50:00 [显示全部帖子]

没明白你:数据库表是做什么用的?有没发现与其它表关联,却所有列用了关联表的刷新公式,如果只是为了统计,可用填充公式:

SelectFill("入网","编号","编号","姓名","姓名","地址","地址","分区号","分区号","类型","类型","终端数","终端数","使用状态","使用状态")


 回到顶部
帅哥哟,离线,有人找我吗?
ylm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2320 积分:350 威望:0 精华:0 注册:2006/8/11 10:55:00
  发帖心情 Post By:2006/9/28 19:56:00 [显示全部帖子]

下面引用由雨后长虹2006/09/28 07:38pm 发表的内容:
不要信易表,他们的东东不安全,有人会破解,我原来对易表情有独衷,可现在不想他有什么大用处了,没意思,有人能破,可你们还拿易表当好软件。傻。还注册白花钱。哈哈

不知你用的操作系统的是不是WINDOWS,网上有很多破解的WINDOWS操作系统,不知你有没有听说?如果有,为何还用WINDOWS操作系统?,如果没有听说过,俺现在就告诉你,俺就用破解WINDOWS操作系统,相信你听了要做的第一件事一定卸了WINDOWS操作系统,因为有人会破解,没意思,有人能破嘛?连MD5密码都有人能破了,你还用电脑吗?

 回到顶部
帅哥哟,离线,有人找我吗?
ylm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2320 积分:350 威望:0 精华:0 注册:2006/8/11 10:55:00
  发帖心情 Post By:2006/9/28 21:57:00 [显示全部帖子]

按下面办法来刷新数据:

提高统计速度
尽量避免重算全表

假定我们有一个仓管系统,该系统由三个表组成,分别为进仓、出仓、结存。
显然,对于每一种产品,总的进仓数量减去总的出仓数量,就是结存数量,所以“结存”表中数量列的刷新公式为:
Sumfor("进仓", "数量", "产品", "=", [产品]) - Sumfor("出仓","数量","产品","=",[产品])

以后我们需要得到最新结存数据的时候,只需重算“结存”表即可。但是如果有5000种产品,进出仓记录有上10万条,那么重算整个结存表可能需要数十分钟才能完成,很少有人能够忍受这种漫长的等待。

下面我们来改进一下这个系统:
1、在“进仓”表和“结存”表之间、“出仓”表和“结存”表之间通过“产品”列建立关联。
2、将“进仓”表数量列的操作公式设为:
if([结存!RelationRow]>0, RecalcRow("结存",[结存!RelationRow]),True)
3、将“出仓”表数量列的操作公式设为:
if([结存!RelationRow]>0, RecalcRow("结存",[结存!RelationRow]),True)

上述公式的含义是,一旦有进出仓,就立即重算“结存”表中对应的行。这样我们在某产品有进出仓的时候,即时计算出了该产品的结存,整个结存表的数据随时都是最新的,无须在需要最新结存数据的时候去花费几十分钟重算整个结存表,效率大为提高。


 回到顶部