以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]后台统计代码运行速度慢 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=96388) |
-- 作者:铜豆 -- 发布时间: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 老师针对以上代码 在运行过程中速度很慢,是否有优化的方法或者新的统计思路
|
-- 作者:有点色 -- 发布时间:2017/2/19 20:03:00 -- 重置列的时候,才会慢吧?
计算的数据越多,执行sqlcompute的次数越多,肯定就越慢。
如果是总体计算,请把各个表的数据都加载出来,再用compute统计。 |
-- 作者:铜豆 -- 发布时间:2017/2/20 10:20:00 -- 是的老师重置列时才会慢 |
-- 作者:有点色 -- 发布时间:2017/2/20 10:36:00 -- 以下是引用铜豆在2017/2/20 10:20:00的发言:
是的老师重置列时才会慢
不要用重置列功能。单独做一个按钮计算。步骤如下:
1、把那六个表的所有数据加载出来;
2、循环每一行,用compute统计 |