【发布时间】:2011-10-16 11:38:52
【问题描述】:
我有一个场景,我需要将所有传入文件(平面、xml)的日志记录到应用程序中。此日志表几乎不使用,除了故障调查或监管目的等,并且会定期清除数据。
我们使用 JPA 2.0 来实现持久性。我们立即使用entityManager.persist(); 和flush 尝试了具有纯JPA 持久性的初始原型。但表现并没有达到预期。所以我建议NativeNamedQueries 进行此操作,测试时性能提升很大(300 毫秒对 47 毫秒)。
但首席工程师对使用 NativeNamedQueries 有点固执,说它与数据库耦合,可维护性较差等等。
问题:
如果您必须做出决定,您对此有何看法。应用程序投入生产后,数据库或架构更改多久发生一次?
还有其他方法可以提高性能吗?性能对于这个应用程序来说非常重要。
我开始编程仅 4 年,但从未见过现有应用程序发生数据库架构更改或数据库提供程序更改。
注意:我们使用的是 EclipseLink 2.3 和 Oracle。它也是我们正在开发的一个新应用程序。以防万一这些点使问题更清楚
【问题讨论】:
-
请您的首席工程师说出两个在 INSERT 语句中具有不同语法的 RDBMS。在过去的 8 年中,我一直在编写 DataNucleus,它支持所有常见的 RDBMS,并且不需要不同的语法来处理所有内容(除了标识符的大写/小写,具体取决于架构如何定义它们)。
-
@DataNucleus OMG。我不敢相信来自 DataNucleus 的人会对我的问题发表评论。你知道,你必须与某人和他们的喜好一起生活。
标签: java database performance orm jpa