寻求Oracle数据密集型应用程序的建议

问题描述 投票:0回答:1

我正在努力开发一个使用Oracle作为数据库后端的应用程序。该应用程序将从数据库中的各个表中计算出一些统计信息。前端很可能是Web应用程序,并且该前端将显示各种图表和计算出的统计信息。现在,我认为在数据库中而不是在服务层中执行计算会更有效,因为需要针对每个Web请求执行所述计算。既然如此,我不确定要使用哪种机制。 (例如,存储过程,函数,视图)为了说明我要做什么,假设我想保留许多学生的学生成绩统计信息。我希望有一个Web界面,可以让我按学生和全包查看这些统计信息。一些统计数据取决于所有学生年级的总和(例如,平均值,最小值,最大值),而某些统计信息仅取决于单个学生。在这种情况下,每次添加或更新记录时,都必须重新计算汇总。所以我推测,如果我有一个特殊的表来保存我需要的所有计算值,并且有一个触发器可以在添加/更新记录时重新计算所有内容,那么我将需要从Web请求的角度做所有事情-view是让服务层从此特殊表中提取所需的值。我只是不确定这是否是最好的方法,因此我在向社区询问任何意见/建议。注意:尽管我使用的是Oracle,但我愿意使用PostgreSQL或mySQL。

提前感谢

oracle stored-procedures web-applications view stored-functions
1个回答
0
投票

您正在描述的场景非常适合使用实例化视图。可以将它们设计为在您的应用程序每次更新源数据时自动(渐进地)刷新。计算将内置到视图定义中。除非您的计算涉及多个步骤,否则不需要触发器,并且可能不需要存储过程。检查此处:https://oracle-base.com/articles/misc/materialized-views和此处:https://medium.com/oracledevs/lightning-fast-sql-with-real-time-materialized-views-12-things-developers-will-love-about-oracle-54bcc9eac358了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.