Foxtable(狐表)用户栏目专家坐堂 → 下面这段代码处理少的数据还比较快,数据量多了就卡死,可以怎么改善


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

主题:下面这段代码处理少的数据还比较快,数据量多了就卡死,可以怎么改善

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/29 10:54:00 [显示全部帖子]

1、如果把这段去掉

 

Dim hpr = DataTables("派发工序表").Find("[订单号] = '" & br("订单号")  & "' and [制单号] = '" & br("制单号")  & "'and [箱号] = '" & br("箱号")  & "' and [工序号] = '" & dr("工序号")  & "'")

 

改成

 

Dim hpr = Nothing

 

测试一下速度

 

2、看看你 【派发工序表】 datacolchanged等事件,是否写有耗时代码。

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/29 12:45:00 [显示全部帖子]

如果把这段去掉

 

Dim hpr = DataTables("派发工序表").Find("[订单号] = '" & br("订单号")  & "' and [制单号] = '" & br("制单号")  & "'and [箱号] = '" & br("箱号")  & "' and [工序号] = '" & dr("工序号")  & "'")

 

改成

 

Dim hpr = Nothing

 

测试一下速度。上传具体实例测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 19:57:00 [显示全部帖子]

以下是引用yetle在2019/5/30 19:34:00的发言:
老师,测试了,这个条件不要也差不多时间,更何况这个条件是必须加的,有没有办法做一个后台数据处理,这样就不至于卡在那动不了

 

1、加上 http://www.foxtable.com/webhelp/scr/0401.htm

 

2、加上 http://www.foxtable.com/webhelp/scr/2218.htm

 

3、可以写成一个函数,然后异步调用这个函数,就可以不影响你当前操作,慢慢让其运行了。

[此贴子已经被作者于2019/5/30 19:56:54编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 21:16:00 [显示全部帖子]

DataTables("派发工序表").StopRedraw

 

DataTables("派发工序表").ResumeRedraw


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 23:35:00 [显示全部帖子]

以下是引用yetle在2019/5/30 22:47:00的发言:
老师,处理几千行数据还挺快,一次性处理上十万条数据必须卡死。这个怎么解决?

 

这个无解。10万行,是两个表的乘积(一个表1000行,一个表100行),还是说每个表都10万行?

 

具体问题,做一个实例发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 9:26:00 [显示全部帖子]

以下是引用yetle在2019/5/31 8:49:00的发言:
一个表2000行,一个表60行,测试卡死
是两个表乘积,能不能一次生成2000行,分60次生成,代码可以怎么改?
[此贴子已经被作者于2019/5/31 8:51:48编辑过]

 

增加10万行不至于假死,假死应该是最后save的时候导致的,你把save代码删除后测试,看速度能否接受。

 

最后保存,改成这种方式保存 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&replyID=680089&skin=1

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52855&skin=0

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 10:58:00 [显示全部帖子]

把这些代码删除啊

 

Tables("派发工序表").save()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 11:10:00 [显示全部帖子]

1、加上stopredraw、ResumeRedraw等

 

加上 http://www.foxtable.com/webhelp/scr/0401.htm

 

加上 http://www.foxtable.com/webhelp/scr/2218.htm

 

2、不要save,先测试执行效率啊


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 11:11:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 11:17:00 [显示全部帖子]

以下是引用yetle在2019/5/31 11:15:00的发言:
没看懂呢,老师直接帮我给一下代码先

 

请上传具体foxtable项目实例


 回到顶部
总数 11 1 2 下一页