公司要求开发一个报表系统,报表的部分决定采用JasperReport,没什么问题;关键是生成的报表内容都是从数据库中查询出来,每一张表的数据量都很大(给电信用的,单张表最少是百万级的,很多千万级的)。现在试了下,一万条查询结果,生成报表需要快30秒,数据量更大的需要等待的时间用户肯定无法忍受。想请教下有什么好的优化方式?
ps:报表的内容是根据jsp页面输入的查询条件得到的,如何优化查询时间也是个大问题,目前想到的方法是表分区,想请教下有没有更好的方法?最好能介绍下ETL
ps:报表的内容是根据jsp页面输入的查询条件得到的,如何优化查询时间也是个大问题,目前想到的方法是表分区,想请教下有没有更好的方法?最好能介绍下ETL
解决方案 »
- [在线等...](java)Oracle中Long类型存储
- oracle函数返回表类型,定义的记录表可以插入数据吗?求教,在线等
- 运行系统时报错,请各位高手指点
- 同时安装了9i和10g的客户端,想卸载9i的客户端
- 急求Oracle report 9i和 Oracle report 10g的下载地址!
- 怎么实现两张表相关数据的update?
- 重装oracle9i后 如何把原来的数据库恢复呢??
- 如何将sequence S的下一个数值插入表T1的id字段 (T1只有id一个字段)?
- 百分求教数据集操作问题(快来接分)
- 请问如何学oracle?(本能想多给点分:错误:你不能放这么多分!)
- 求购一个存储过程,急急急急啊!
- 比較複雜的update語句
2.建立适当的索引
3.优化报表中的SQL语句
4.业务上规避超大数据量的查询,如:SELECT * FROM XXX;
存储设备最好用磁盘阵列,而且要用裸设备的方式存放数据,不要经过操作系统的文件系统了,这对性能会有很大的提高。
ETL主要用现在数据仓库的应用中,以前叫ETCL
ETL = Extract(抽取,其实就是查询),Transform(转换,比如做一些汇总等) and Load(装载到data warehouse)
ETCL中的C就是Cleansing(即数据清洗,去掉一些垃圾数据,无用的数据)我觉得你的问题和ETL有一定的关系,但是关系不大。