首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle中大量数据的复杂报表

oracle中大量数据的复杂报表
EN

Stack Overflow用户
提问于 2013-03-15 13:43:30
回答 1查看 255关注 0票数 1

我使用oracle11g存储大量数据(大约1kk记录)。我的模式看起来像(简化):

客户端表:

代码语言:javascript
复制
   ---------------------------------------
  |id | firstName | lastName | middleName |
   ---------------------------------------

手术台:

代码语言:javascript
复制
   ---------------------------------------
  |id | client_id | date | balance | type |
   ---------------------------------------

我需要为客户端生成过滤和同意的报告,包括不同的累积行。例如,我需要一份有操作的客户端的报告--某种类型的操作。报告应包括如下栏:所有业务余额之和,过滤型业务余额之和,当年业务余额之和。

我正在使用java和hibernate标准生成一个请求,但是代码增长了,现在它太不稳定了,无法维护它。

使用sql生成复杂报告的最佳决定是什么:

  1. 将所有数据加载到我的应用程序并在我的代码中集成它?
  2. 将过滤和集聚逻辑拆分为存储函数?
  3. 使用临时表分步过滤和放大?
  4. 使用第三方软件或其他nosql存储来生成报表?(如bi工具或map-还原)
  5. 编写java存储过程?

什么是“标准企业”解决方案,以产生复杂的报告大量的数据,正常的性能和资源利用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-15 14:39:18

在这种情况下,Hibernate不是你的朋友。作为第一步,尝试编写Oracle存储的proc并通过JDBC或Hibernate从Java调用它们,如果应用程序的其余部分已经在使用Hibernate。

如果计算中有共同的部分,请考虑将它们分解为单独的存储过程。

如果通用数据的更改相对较慢(与其他数据相比),则可以使用物化视图。

另一种考虑。如果您正在按日期进行大量报告,但操作表记录上有日期/时间字段的时间戳,请考虑为日历日期(例如20130315 )添加一个数字字段,并在其上进行索引。这将大大提高性能,但仍然可能留给您大量的Oracle查询。

你的数据有多大?什么是“1 1kk”?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15434011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档