首页 新闻 会员 周边

分表数据处理的问题!

0
悬赏园豆:20 [已解决问题] 解决于 2013-08-15 10:07

需求是这样的,有一批监控流量的数据,一分钟一个点一天有1440个点。

要监控40个公司的主要流量。

每条线路有主副2条线用来做负载均衡。

然后就是要对30天的数据进行加权计算处理。

如果按一年来算的话就是1440*40*2*365=4200多万条数据

很显然这样的数据量是要分表的

如果按月来分的话那么一个表大致就有300多万的数据,如果按天来分就有10多万条数据。

首先不管怎么分吧!这里的问题是要加权计算,我是想直接利用sql里面的count sum avg之类的函数直接运算返回结果。这样就可以大大的简化程序的逻辑。

但是不知道跨表后,这样的sql语句怎么写。

这里给个例子吧(按月份的话)

data2011_1

和data2011_2

这2张表

里面有共同的字段 streamdata

我要前一张表取10跳,后一张表取20条

然后对这30条数据取平均值,请问,我该如何操作??

小眼睛老鼠的主页 小眼睛老鼠 | 老鸟四级 | 园豆:2731
提问于:2011-10-06 15:34
< >
分享
最佳答案
0


SELECT AVG(a.DistrictAutoID) FROM (
SELECT TOP 20 * FROM dbo.DialupClientUsers(NOLOCK)
WHERE 1= 1
UNION ALL
SELECT TOP 10 * FROM dbo.DialupClientUsers(NOLOCK)
WHERE 1=1
) a

dearz | 小虾三级 |园豆:588 | 2011-10-08 08:45
其他回答(1)
0

不知道4200万条数据是否真有那么多

你想过用游标么,用存储过程呢?

收获园豆:20
澜紫癜青 | 园豆:313 (菜鸟二级) | 2011-10-06 19:54

请问下就算用游标怎么加快查询???

分表的策略在于能够将需要的和不需要的数据在物理上就分离

这样可以减少查询在不必要的数据上检索的时间 

请问你说的游标和存储过程是什么思路??

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2011-10-07 20:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册