使用用户数据生成统计信息的策略

时间:2013-01-19 11:20:08

标签: database statistics

我需要一条通用的建议,但是对于记录我使用jpa。

我需要生成使用数据统计信息,例如每个产品的用户购买细分等等...我看到三种可能的策略,1)每次查看统计数据时生成动态统计信息,2)创建特定的表格我会在每次更改时更新的统计数据3)定期进行离线处理

所有都有问题和优势,例如成本与不是最新数据,我想知道是否有任何具有该领域经验的人可以提供一些建议。我知道这个问题非常广泛,如果需要我可以改进我的用例。

1 个答案:

答案 0 :(得分:2)

我做了很多报道,我一直想知道的第一个问题是利益相关者是否需要实时数据。这肯定会改变您的思考方式以及如何设计报告系统。

根据您的数据大小,我认为可以进行实时报告。如果您有数百万的数据,那么您可能需要进行一些预处理或数据仓库(您的选项2/3)。

一些一般性建议:

  1. 如果您想要进行实时报告,请考虑制作数据库的副本,以便您不会针对生产数据运行报告。有些报告可能会使用繁重的查询,因此值得研究将生产数据复制到可以运行报告的其他服务器。

  2. 大量使用中间结构进行报告。编写视图,存储过程等,因此每个报告不仅仅是一些巨大的复杂查询。

  3. 如果报告在数据库级别开始变得过于复杂,请确保将报告逻辑移动到应用程序层。我被这多次咬过了。我开始编写一个纯粹来自数据库的查询报告,最终它变得过于复杂,我必须通过箍来使其工作。

  4. 实时拍摄,然后根据需要转到陈旧数据。数据库能够比你想象的做得更多。通常,您可以对数据库结构进行更改,从而提高性能。