Foxtable(狐表)用户栏目专家坐堂 → 【求助】狐表万行数据计算优化请教!


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

主题:【求助】狐表万行数据计算优化请教!

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6224 威望:0 精华:0 注册:2018/5/10 9:05:00
【求助】狐表万行数据计算优化请教!  发帖心情 Post By:2020/6/19 15:01:00 [只看该作者]

1、由于应用场景需要 需要进行计算 请求算法指导!
A、狐表内计算优化方案
B、sql数据内进行计算优化方案
C、指导一下用哪种方案性能最优
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产工piao.zip


特别说明  附件内的数据请设置sql数据源及数据

                              谢谢!

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


加好友 发短信
等级:超级版主 帖子:110512 积分:562444 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/19 15:24:00 [只看该作者]

如果数据已经加载,建议改为在datacolchanged事件处理

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6224 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2020/6/19 15:59:00 [只看该作者]

感谢蓝版的及时指导

应用场景如下
1.订单有多个柜子+其他部件=300个部件
2.每个部件经历20个工序左右
3.每个工序又产不多有5个判断
300*20*5=15000条明细运算

假如DataColChanged事件效率反而不高  目前这种方式运算万行9分钟左右

图片点击可在新窗口打开查看此主题相关图片如下:万行运算用时.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:110512 积分:562444 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/19 16:09:00 [只看该作者]

不知道datacolchanged是怎么用的?

如果是逐条录入数据的,基本感觉不出来。如果是批量导入数据的,也就只能这样的了,遍历+sql的方法也未必快多少。

如果不跨表的话,使用这种方式应该会快一点:http://www.foxtable.com/webhelp/topics/1277.htm

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6224 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2020/6/19 16:13:00 [只看该作者]

现在遇到2个问题
1、保存万行数据太久了 计算9分钟  保存差不多9分钟
2、这是用视图+存储过程生成的sql表数据  项目用的只是加载到窗口表而已
[此贴子已经被作者于2020/6/19 16:14:37编辑过]

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


加好友 发短信
等级:超级版主 帖子:110512 积分:562444 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/19 16:16:00 [只看该作者]

如果sql熟练的话,可以考虑把逻辑搬到存储过程里处理。

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6224 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2020/6/19 16:48:00 [只看该作者]

蓝版 sql 只看了狐表帮助 懂的就是帮助的基础部分,能否请教指导一下 这个场景咋处理  或者给下指导思路

计算列:[工序条件]   [单价公式]   

单价公式例子:
case 
when [家具名称] like '%酒柜%'  then [平方数]*7 
when [家具名称] like '%博古架%'  then [平方数]*9 
when [家具名称] like '%衣柜%'  then [平方数]*5.5 
else [平方数]*7 
end

工序条件例子:
[家具名称] not like '%不试装%'

所有[单价公式]   [工序条件]的计算参数条件数据均通过视图+存储过程导入到[生产工piao]表内

S ELECT [单号],[行号],[工艺编号],[物料代码],[名称],[长],[宽],[厚],[数量],[操作员]
,[备注],[操作日期],[工序记录],[工艺判断],[ID],[工艺],[颜色],[材质],[输出_满足工序条件]
,[输出_单价],[家具名称],[_Locked],[_Identify],[工序编号],[工序名称],[车间],[单价公式]
,[工序条件],[平方数]  FROM [生产工piao]
[此贴子已经被作者于2020/6/19 17:15:15编辑过]

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


加好友 发短信
等级:超级版主 帖子:110512 积分:562444 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/19 20:29:00 [只看该作者]

如果要使用sql,先上网学习一下:存储过程怎么建?游标怎么使用?怎么在存储过程里执行动态sql?

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


加好友 发短信
等级:超级版主 帖子:110512 积分:562444 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/19 20:31:00 [只看该作者]

如果经常要这样批量处理数据,建议做个服务端项目,放到服务端定时自动执行。

 回到顶部