以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 优化 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128014) |
-- 作者:hbhb -- 发布时间:2018/11/27 10:11:00 -- 优化 大师:为何加了一个红色条件,效率降低10倍,如何优化? dfhj = t1.Compute("sum(贷方)","凭证号 = \'" & pz & "\'") dfhj = t1.Compute("sum(贷方)","凭证号 = \'" & pz & "\'" & " and 对方科目 is null") |
-- 作者:hbhb -- 发布时间:2018/11/27 10:19:00 -- 而且就循环100多次,什么原因? |
-- 作者:有点甜 -- 发布时间:2018/11/27 10:35:00 -- 具体实例发上来测试。 |
-- 作者:hbhb -- 发布时间:2018/11/27 10:49:00 -- For Each pz As String In pzh dfhj = t1.Compute("sum(贷方)","凭证号 = \'" & pz & "\'" & " and 对方科目 is null") \'dfhj = t1.Compute("sum(贷方)","凭证号 = \'" & pz & "\'") Next 就以上简单的代码,t1表有10000多行,pzh集合数量100,就这些凭证中对方科目有空值,为何如此慢,用统计表快得很?
|
-- 作者:hbhb -- 发布时间:2018/11/27 11:13:00 -- |
-- 作者:hbhb -- 发布时间:2018/11/27 11:33:00 -- 当10000多行数据,就是简单的循环100多次用select 或compute,都要几秒。什么玩意? |
-- 作者:有点甜 -- 发布时间:2018/11/27 12:07:00 -- 1、compute统计的时候,条件越复杂,就越慢的。不要纠结这些。
2、效率问题,看看这一章 http://www.foxtable.com/webhelp/scr/2226.htm
3、如果要优化效率那就尽量自己写统计的代码。 |