Foxtable(狐表)用户栏目专家坐堂 → [求助]大批量数据删除的效率问题


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

主题:[求助]大批量数据删除的效率问题

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/2 9:11:00 [显示全部帖子]

测试 一下,DeleteFor确实慢不少,应该是这个方法是针对datatable的,并且有条件需要判断,如果是全删除,比如DeleteFor(""),会快一倍,同时如果去掉删除事件代码会更快。

而右键删除是针对table的,筛选后删除不需要判断了,所以快不少。估计针对table的操作应该触发的事件也少了

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/2 9:50:00 [显示全部帖子]

DeleteFor效率暂时无法提升了。如果要快,直接使用sql操作吧,几万数据删除也就不到1秒的事。

为什么不在新增的时候就判断,如果是空值就不新增了,还少了删除的步骤


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/2 11:15:00 [显示全部帖子]

MainTable = t

t.StopRedraw
t.filter = "AID is null"
t.Select(0,0,t.rows.count - 1,t.Cols.count - 1)
systemready = False
Syscmd.Row.Delete()
systemready = True

t.filter = ""
t.ResumeRedraw

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/2 13:55:00 [显示全部帖子]

没办法。

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/2 15:54:00 [显示全部帖子]

不可以

 回到顶部