免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2241 | 回复: 7

报表生成时间过长或者没法生成的问题 [复制链接]

论坛徽章:
0
发表于 2008-07-11 20:19 |显示全部楼层
我现在使用的这个mysql得系统监测数据库表中有几百万行记录,也有很多关联表,表中有时间信息和用户信息一些系统违例行为描述。
坐标表要求根据从某天的某小时到某天的某小时,这个时间段,列出最高的比如10条。也可以看类似时间段,根据表中的一些字段,比如根据某个人的查到他最高的10条违例记录,还有根据某个数据项,比如违例行为最多的比如10个人等等。

现在遇到的问题是数据量大了,然后这个报表要做很长时间,或者机子干脆死掉了,报表工具是jasper,我们现在想到的办法是把这个数据表按照季度等等分成季度表,减小最后的表的长度,这样用户根据时间段来生成报表的时候,就能定位小点的表, 查询生成所用时间会少些。

不知道还有什么别的办法么,有朋友说要把数据库放到另外一台机子,有朋友说要用oracle,
我是想能不能用些中间表来加快生成速度,但是这个时间用户是可以变动查询时间的,这个中间表好像
也没有办法生成。

不知道大家有什么好的建议?

论坛徽章:
0
发表于 2008-07-12 09:18 |显示全部楼层
CSDN里面我回复过你了。

论坛徽章:
0
发表于 2008-07-12 09:28 |显示全部楼层
这个我不清楚啊











飞升之后

论坛徽章:
0
发表于 2008-07-21 15:43 |显示全部楼层
谢谢,打算建临时表了!

论坛徽章:
0
发表于 2008-07-21 15:48 |显示全部楼层
我现在想到的是采用临时表,临时统计表,每隔一个小时做一次更新假如新的数据,这个做报表的时候,假如用户选择从某个时段到某个时段,我可以在这个统计表中根据时间索引直接返回数据。

但是这个有个问题,问题就是假如用户要求这个报表的数据是从刚刚过去一个小时,比如说2点到2点20分的报表,或者说1点到2点20这个时间内的报表,我这个临时的中间统计表就没有用了,还得查原始的很多数据表,这个问题怎么解决呢?
有没有什么好办法,如果一定要查当前的表的数据,肯定是很慢的。

论坛徽章:
0
发表于 2008-07-22 13:31 |显示全部楼层

回复 #5 plscareme 的帖子

看看慢查询,试试单表查询慢了没有,先对表索引优化。

再不行试试分表。

多关键字查询速度确实挺难搞上去,太灵活也是一种负担。

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
发表于 2008-07-22 14:50 |显示全部楼层
原帖由 plscareme 于 2008-7-21 15:48 发表
我现在想到的是采用临时表,临时统计表,每隔一个小时做一次更新假如新的数据,这个做报表的时候,假如用户选择从某个时段到某个时段,我可以在这个统计表中根据时间索引直接返回数据。

但是这个有个问题,问 ...



看逻辑上能更改不?
作预处理之类的

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
发表于 2008-07-26 22:20 |显示全部楼层
原帖由 plscareme 于 2008-7-21 15:43 发表
谢谢,打算建临时表了!


嗯。经常报表的数据都是从中间表取数据。不然就慢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP