大家可以对 Oracle/PL SQL 和 Java 在处理货币计算时的优缺点进行很好的比较。
如果您要开发一个需要处理大量资金计算的应用程序,您会使用这两者中的哪一个?为什么?
这个问题并不是要引发oracle/pl sql和java爱好者之间的争论,我只是想知道这种需求的最佳实践或标准方法是什么以及背后的原因。
场景是:
- 数据来自数据库(最低 Oracle 10g)。
- 该程序将根据聚合数据 (100k-1M) 记录计算并生成发票
- 业务规则非常复杂
- 业务规则可能每月至少更改一次
- 计算时会用到几个参考表
- 程序每天运行一次
提前致谢。
这些标准绝对有利于 PL/SQL 的使用。
1) 数据来自数据库(最低 Oracle 10g)。
2)该程序将根据汇总计算并生成发票
数据(100k-1M)条记录
5)计算时会用到几个参考表
6) 程序每天运行一次
如果是在数据库中并且涉及数据,尤其是大量数据,那么PL/SQL是默认选项。
其余的标准很难评估:
3)业务规则非常复杂
4) 业务规则可能会发生变化
每月至少一次
PL/SQL确实能够进行计算,并且它有很多内置的算术函数。因此,这归结为“业务规则”和“复杂”的确切含义。我们可以用 PL/SQL 编写复杂的业务逻辑(我已经做到了),但 Java 的语言特性无疑使任务变得更容易:我正在考虑诸如反射和内省之类的东西。
也许您正在考虑使用规则引擎?当然,金融服务业一直是规则引擎的主要用户。从处理中抽象出规则集将更容易满足第四个标准。
Java 有两个已建立的规则引擎,流口水和杰西 https://stackoverflow.com/questions/2167358/pros-and-cons-of-java-rules-engines。那里isPL/SQL 中的规则引擎,已经存在一段时间了,但它主要用作 Oracle Streams 的一部分。然而,API 是公开的,因此可以用于其他目的。了解更多 http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10802/d_rule.htm.
如果您正在考虑规则引擎,那么我认为这会向 Java 倾斜。业务规则处理是一种专业的编程范例,Java 比 PL/SQL 对此有更多的经验和支持。我怀疑这意味着在中间层使用 Java 而不是 Java 存储过程,这会对网络流量和性能产生影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)