Foxtable(狐表)用户栏目专家坐堂 → 如何提高替换数据的速度


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

主题:如何提高替换数据的速度

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


加好友 发短信
等级:小狐 帖子:371 积分:4362 威望:0 精华:0 注册:2017/2/7 7:41:00
如何提高替换数据的速度  发帖心情 Post By:2022/12/25 14:36:00 [只看该作者]

在录入、修改客户信息的某个字段时,想同步到“出库主表”中。
目前采用客户信息表的“DataColChanged”事件来处理,代码如下:
SystemReady = False ‘出库主表有许多表达式列,暂停事件执行
。Try
For Each dr As DataRow In DataTables("出库主表").Select("订单客户 = '" & e.DataRow("订单客户") & "'")
    dr("结算日") = e.DataRow("结算日")
Next
Catch ex As Exception
    MessageBox.Show("更新数据失败") 
End Try
SystemReady = True ’恢复事件执行

目前“出库主表”约有32000行,发现执行一次数据更新,需要几分钟时间(与这个客户的出库主表记录数有关)。

请问,何种处理方法,才能提高更新速度?

[此贴子已经被作者于2022/12/25 17:29:26编辑过]

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


加好友 发短信
等级:超级版主 帖子:106464 积分:541467 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/25 17:50:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:371 积分:4362 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2022/12/25 18:16:00 [只看该作者]

已有判断列名。
还有,相同代码,在不建立表达式的数据库的测试项目中执行,所化时间基本为0.我怀疑是项目中表达式影响了给速度。


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


加好友 发短信
等级:超级版主 帖子:106464 积分:541467 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/25 18:18:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4362 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2022/12/25 21:39:00 [只看该作者]

我把出库主表及出库明细表的所有表达式都停了,速度还是提不高。感觉一进入这个操作,整个狐表程序暂停了。

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


加好友 发短信
等级:超级版主 帖子:106464 积分:541467 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/25 21:54:00 [只看该作者]

请提供实例测试

 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4362 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2022/12/25 23:12:00 [只看该作者]

因实际数据涉及工厂的商业信息,不好发到论坛上来。如可以的话,我可以通过QQ私下发,QQ:496058092

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


加好友 发短信
等级:超级版主 帖子:106464 积分:541467 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/25 23:28:00 [只看该作者]

没有必要发源项目。新建一个项目,导入表格和部分测试数据,可以把和测试无关的隐私列数据删除掉,然后测试看看是不是有同样的问题。

如果说是修改客户信息的其中一行,然后ReplaceFor全部更新"出库主表"3W行数据的用户一般不应该慢的。

下面情况可能会慢
1、对客户信息进行重置列操作,这种基本无解,不要动不动就整表重置列。如果需要对整表数据进行更新的,建议使用sql
2、还是有事件代码,或者表达式列影响了
3、ReplaceFor更新的行数多,如果连接的是远程数据库,服务器带宽不足的话可能会保存的比较慢

 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4362 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2022/12/26 8:42:00 [只看该作者]

在执行客户信息表的“DataColChanged”事件时,已把系统事件SystemReady 停了,昨晚也把出库主表与出库明细表的所有表达式列停止,再去更新数据。还是会更新数据1分钟时间。


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


加好友 发短信
等级:超级版主 帖子:106464 积分:541467 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/26 8:47:00 [只看该作者]

完整代码?

 回到顶部
总数 23 1 2 3 下一页