Foxtable(狐表)用户栏目专家坐堂 → [讨论]百万行数据汇总测试


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

主题:[讨论]百万行数据汇总测试

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
[讨论]百万行数据汇总测试  发帖心情 Post By:2012/9/1 18:06:00 [只看该作者]

《去掉最高分最低分然后求平均值有哪些思路? 》衍生出的问题

应lihe60,特上传百万行数据供测试,欢迎各位高手指教。

本次测试数据完全由VBA自动生成,数据完全随机。源文件过大,只截取了其中一部分,但包含了100W行。

简化下不求平均值,只需要将同类项“计数”列合计

 

以下是连接

http://www.kuaipan.cn/file/id_26575316302437646.htm

 

本人没有测试过需要多久,给个VBA算出的时间,3秒用于数据载入,3.000秒用于计算,并输出结果到EXCEL表(未保存)

测试环境:

笔记本

win7 旗舰版 32位

内存:3g

cpu:T6600

[此贴子已经被作者于2012-9-1 21:39:36编辑过]

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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/9/2 10:38:00 [只看该作者]

以下是引用jspta在2012-9-1 18:06:00的发言:

《去掉最高分最低分然后求平均值有哪些思路? 》衍生出的问题

应lihe60,特上传百万行数据供测试,欢迎各位高手指教。

本次测试数据完全由VBA自动生成,数据完全随机。源文件过大,只截取了其中一部分,但包含了100W行。

简化下不求平均值,只需要将同类项“计数”列合计

 

以下是连接

http://www.kuaipan.cn/file/id_26575316302437646.htm

 

本人没有测试过需要多久,给个VBA算出的时间,3秒用于数据载入,3.000秒用于计算,并输出结果到EXCEL表(未保存)

测试环境:

笔记本

win7 旗舰版 32位

内存:3g

cpu:T6600

[此贴子已经被作者于2012-9-1 21:39:36编辑过]

无法下载,我没有快盘。


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2012/9/2 11:07:00 [只看该作者]

以下是引用lihe60在2012-9-2 10:38:00的发言:

无法下载,我没有快盘。

随便注册个号就能下载了,

提供个

用户:foxtable@163.com

密码:foxtable2012


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/2 11:45:00 [只看该作者]

自己编码的话,某一对象的最低分、最高分、平均分,可以在循环一遍(即100W次)得出。

就不用分别,多次汇总统计。

用空间复杂读换取时间复杂度。

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2012/9/2 12:41:00 [只看该作者]

以下是引用lin_hailun在2012-9-2 11:45:00的发言:
自己编码的话,某一对象的最低分、最高分、平均分,可以在循环一遍(即100W次)得出。

就不用分别,多次汇总统计。

用空间复杂读换取时间复杂度。

这样存在的问题就是,表在不断变化,你这个统计表也必须跟着一起变才行。不过这种关联也很容易解决。

这100W行的数据,昨天晚上测试了下,在导入狐表的后,4秒左右统计出来没有什么问题,加上去最高和最低然后求平均,8秒左右也能完成

这个只是个讨论,我的希望的结果是,能得到比较理想的代码来解决这个问题。


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/9/2 15:45:00 [只看该作者]

以下是引用jspta在2012-9-2 12:41:00的发言:

这样存在的问题就是,表在不断变化,你这个统计表也必须跟着一起变才行。不过这种关联也很容易解决。

这100W行的数据,昨天晚上测试了下,在导入狐表的后,4秒左右统计出来没有什么问题,加上去最高和最低然后求平均,8秒左右也能完成

这个只是个讨论,我的希望的结果是,能得到比较理想的代码来解决这个问题。

100W的数据为什么要导入后再统计?列数多的话,差一点的电脑光是载入这些数据就可能会崩溃的。

直接对外部数据源统计,百万条数据也是瞬间完成:

去掉最高分、去掉最低分、统计平均值:

select avg(计数) as 平均 from 百万行 where 计数>(select min(计数) from 百万行) and 计数<(select max(计数) from 百万行)


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2012/9/2 21:10:00 [只看该作者]

以下是引用reachtone在2012-9-2 15:45:00的发言:

100W的数据为什么要导入后再统计?列数多的话,差一点的电脑光是载入这些数据就可能会崩溃的。

直接对外部数据源统计,百万条数据也是瞬间完成:

去掉最高分、去掉最低分、统计平均值:

select avg(计数) as 平均 from 百万行 where 计数>(select min(计数) from 百万行) and 计数<(select max(计数) from 百万行)

导入的目的是想测试那个运行更快。因为我觉得还是导入后更加快。

但导入后发现,不知道用那条语句可以执行这个已经导入到内存的外部表,它不属于内部数据源,只能算个datatable吗,那如何对这个表使用sql语句? 

自带的语句完全不能满足这么大的数据要求。顺便测试了下GetUniqueValues,好像就要10几秒,比直接从数据源获取还慢。不过compute还是很快的。


 回到顶部