以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何提高替换数据的速度 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=184712) |
-- 作者:明天的灵 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/12/25 17:50:00 -- 先看看:http://www.foxtable.com/webhelp/topics/1522.htm 替换一个列的数据用ReplaceFor:http://www.foxtable.com/webhelp/topics/1532.htm
|
-- 作者:明天的灵 -- 发布时间:2022/12/25 18:16:00 -- 已有判断列名。 还有,相同代码,在不建立表达式的数据库的测试项目中执行,所化时间基本为0.我怀疑是项目中表达式影响了给速度。 |
-- 作者:有点蓝 -- 发布时间:2022/12/25 18:18:00 -- 确实有影响,参考:http://www.foxtable.com/webhelp/topics/1935.htm |
-- 作者:明天的灵 -- 发布时间:2022/12/25 21:39:00 -- 我把出库主表及出库明细表的所有表达式都停了,速度还是提不高。感觉一进入这个操作,整个狐表程序暂停了。 |
-- 作者:有点蓝 -- 发布时间:2022/12/25 21:54:00 -- 请提供实例测试 |
-- 作者:明天的灵 -- 发布时间:2022/12/25 23:12:00 -- 因实际数据涉及工厂的商业信息,不好发到论坛上来。如可以的话,我可以通过QQ私下发,QQ:496058092 |
-- 作者:有点蓝 -- 发布时间:2022/12/25 23:28:00 -- 没有必要发源项目。新建一个项目,导入表格和部分测试数据,可以把和测试无关的隐私列数据删除掉,然后测试看看是不是有同样的问题。 如果说是修改客户信息的其中一行,然后ReplaceFor全部更新"出库主表"3W行数据的用户一般不应该慢的。 下面情况可能会慢 1、对客户信息进行重置列操作,这种基本无解,不要动不动就整表重置列。如果需要对整表数据进行更新的,建议使用sql 2、还是有事件代码,或者表达式列影响了 3、ReplaceFor更新的行数多,如果连接的是远程数据库,服务器带宽不足的话可能会保存的比较慢
|
-- 作者:明天的灵 -- 发布时间:2022/12/26 8:42:00 -- 在执行客户信息表的“DataColChanged”事件时,已把系统事件SystemReady 停了,昨晚也把出库主表与出库明细表的所有表达式列停止,再去更新数据。还是会更新数据1分钟时间。 |
-- 作者:有点蓝 -- 发布时间:2022/12/26 8:47:00 -- 完整代码? |