以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 怎么优化这段代码,执行效率很低 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161197) |
-- 作者:zaq3574020 -- 发布时间:2021/3/9 16:28:00 -- 怎么优化这段代码,执行效率很低 SQLxsmxFilter ="[t_rm_saleflow].[item_no] Like \'" & kh.Value & "%\'and [t_bd_branch_info].[branch_name] Like \'" & ck.Value & "%\'and [item_name] Like \'" & pl.Value & "%\'and [item_subname] Like \'" & pm.Value & "%\'" If jj.Text.Length>0 Then DataTables("库存调整入明细").LoadFilter = SQLtyFilter & "and [t_im_sheet_barcode_qty].[trans_no] = \'oo\'and [db_no] = \'+\'" |
-- 作者:有点蓝 -- 发布时间:2021/3/9 16:44:00 -- 无法优化。表格得一个一个加载。 |
-- 作者:zaq3574020 -- 发布时间:2021/3/9 17:05:00 -- 那是可以使用其他的写法,完成这个逻辑吗 |
-- 作者:zaq3574020 -- 发布时间:2021/3/9 17:12:00 -- 我是加载完之后,然后使用GroupTableBuilder。是不是应该直接使用SQLGroupTableBuilder来执行。如果使用SQLGroupTableBuilder ,列名又不知道怎么处理 |
-- 作者:有点蓝 -- 发布时间:2021/3/9 17:45:00 -- 如果只是为了统计,直接统计就行了,没有必要加载什么查询表 |
-- 作者:zaq3574020 -- 发布时间:2021/3/10 8:34:00 -- SQLxsmxFilter ="[t_rm_saleflow].[item_no] Like \'" & kh.Value & "%\'and [t_bd_branch_info].[branch_name] Like \'" & ck.Value & "%\'and [item_name] Like \'" & pl.Value & "%\'and [item_subname] Like \'" & pm.Value & "%\'" If jj.Text.Length>0 Then DataTables("库存调整入明细").LoadFilter = SQLtyFilter & "and [t_im_sheet_barcode_qty].[trans_no] = \'oo\'and [db_no] = \'+\'"
这个加载是主线程同步加载吗,为什么有时候一执行,程序就未响应了。然后等了10分钟也不会动。有时候又不会 |
-- 作者:有点蓝 -- 发布时间:2021/3/10 8:51:00 -- 默认都是主线程同步加载,再说DataTable也不支持异步加载。 如果加载的条件导致数据多,肯定就慢;如果还有表事件,以及表达式列计算,会更慢;如果是远程数据库还会更慢。 这么复杂的sql都搞出来了,如果加载数据不是为了编辑,而是做统计,还不如直接使用sql统计返回结果
|
-- 作者:zaq3574020 -- 发布时间:2021/3/10 10:27:00 -- 我看了一下加载出来的所有数据,也就是不到3W条,但是我等了大概5分钟 |
-- 作者:有点蓝 -- 发布时间:2021/3/10 11:05:00 -- 如果还有表事件,以及表达式列计算,会更慢;如果是远程数据库还会更慢。 |