如何从一个亿左右的数据中提取电话号码的数量

[复制链接]
查看11 | 回复9 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
条件: 数据数量 一亿
提取条件:按照各省,地市,计算从每年的一月一日起到查询日期 总计有多少号码拨打过,
提取周期:每月计算一次
考虑group by 对系统影响太大,想找一个好的方法,避免这种计算对系统的影响
请各位大侠多多指导.
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
原帖由 fangye_2008 于 2008-2-26 11:29 发表
条件: 数据数量 一亿
提取条件:按照各省,地市,计算从每年的一月一日起到查询日期 总计有多少号码拨打过,
提取周期:每月计算一次
考虑group by 对系统影响太大,想找一个好的方法,避免这种计算对系统的影响
请各位大侠多多指导.

你能说一下你的一亿行的表有多大吗?几个G ?
每个月需要执行几次?就一次?
你是不是把一亿想象得太大了?如果每月执行一次,全表扫描很快就能完成
如果还涉及到把结果保存的问题,10g expdp出整个表也就几分钟 大不了加个QUERY=''
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
首先感谢!
问题是这样,由于系统中还承载着过多的负担,我只想找一种对系统消耗比较的策略,例如从一月一日开始记录每个号码的拨打情况,每天更新一个号码对各个省的拨打情况,一个月统计一次有多少号码.就是不太想用group by 的方法实现,不知是否已经说明我的意思.
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
可以考虑聚合物化视图的方式,定时刷新和手动刷新来获取信息,不过对于这样的统计如果不是在应用逻辑中做处理,是无法避免用的group by操作的。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
是我说错了,不是提取数据,是分组计算条件,目的是在报表上展示一年的累计数据,在月报和周报中显示累计数据,也就是说要一周算一次从一月一号到统计时间的号码数
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
我担心的是到年末的时候统计对系统内存的影响过大.,所以想有没有其他实现的方法.
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
一周算一次,算完的结果保存下来啊
月汇总也保存下来
年末直接拿月汇总的数据统计就行了,比每周的还快
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
既然是累计,为什么不1月2月3月分别累加,而要1月1---2月,1月1---3月?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
楼上的主意不错,不过麻烦一点罢了.
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
有没有考虑建分区呢。或者针对该表建一个统计表,定期将需要的数据抽取到统计表里面。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行