Foxtable(狐表)用户栏目专家坐堂 → [求助]后台统计代码运行速度慢


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

主题:[求助]后台统计代码运行速度慢

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


加好友 发短信
等级:婴狐 帖子:78 积分:589 威望:0 精华:0 注册:2016/12/15 18:05:00
[求助]后台统计代码运行速度慢  发帖心情 Post By:2017/2/19 19:26:00 [只看该作者]

            Dim gd,gd1,gd2,gd3,gd4,gd5,gd6 As Double
            gd = DataTables("商务通参与邀请").sqlCompute("Sum(费用)","[日期] = #" & e.NewValue & "#" )
            gd2 = DataTables("网站消费").sqlCompute("Sum(点击)","[日期] = #" & e.NewValue & "# and [推广类型] = '百度 '")
            gd3 = DataTables("网站消费").sqlCompute("Sum(消费)","[日期] = #" & e.NewValue & "# and [推广类型] = '百度 '")
            gd1 = DataTables("商务通参与邀请").sqlCompute("Sum(离四)","[日期] = #" & e.NewValue & "#" )
            gd4 = DataTables("离线宝").sqlCompute("Sum(非重复数量)","[开始时间] = #" & e.NewValue & "#")
            gd5 = DataTables("四零零").sqlCompute("Sum(非重复数量)","[开始时间] = #" & e.NewValue & "#")
            If e.DataRow.Isnull("费用") Then
                e.DataRow("点击") = Nothing
                e.DataRow("消费") = Nothing
            Else
                e.DataRow("点击") = gd2/gd
                e.DataRow("消费") = gd3/gd
            End If
            If e.DataRow.Isnull("离四") Then
                e.DataRow("离线宝") = Nothing
                e.DataRow("电话400") = Nothing
            Else
                e.DataRow("离线宝") = gd4/gd1
                e.DataRow("电话400") = gd5/gd1
            End If
老师针对以上代码  在运行过程中速度很慢,是否有优化的方法或者新的统计思路

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/19 20:03:00 [只看该作者]

 重置列的时候,才会慢吧?

 

 计算的数据越多,执行sqlcompute的次数越多,肯定就越慢。

 

 如果是总体计算,请把各个表的数据都加载出来,再用compute统计。


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


加好友 发短信
等级:婴狐 帖子:78 积分:589 威望:0 精华:0 注册:2016/12/15 18:05:00
  发帖心情 Post By:2017/2/20 10:20:00 [只看该作者]

是的老师重置列时才会慢

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/20 10:36:00 [只看该作者]

以下是引用铜豆在2017/2/20 10:20:00的发言:
是的老师重置列时才会慢

 

不要用重置列功能。单独做一个按钮计算。步骤如下:

 

1、把那六个表的所有数据加载出来;

 

2、循环每一行,用compute统计


 回到顶部