我正在重新设计一对应用程序,它们在一种情况下使用Hibernate ,在第二种情况下使用Hibernate 和 Java Content Repository(特别是JackRabbit)的组合。
重新架构的一个关键问题是提高性能,所以我想知道为应用程序的设计和开发引入DBA是否有任何价值。
请注意,我并没有质疑让 DBA 参与管理生产数据库的价值。但在过去的项目中,必须让优秀的 DBA 参与设计和编码阶段,找出优化数据结构的方法,将代码放入存储过程等。
但鉴于数据库结构几乎完全由 Hibernate 和 JackRabbit 管理,因此优化它们的空间不大。当然,如果我们发现它们表现不佳,DBA 可能会发现问题,我们可以提交补丁来改进它们,但我不知道我们是否希望(或能够)在应用程序方面做很多事情——具体调优。
想知道 DBA 在这类应用程序中的角色的另一个原因是,我们的大部分性能问题很可能在持久层之上,即不是数据库、hibernate 或 JackRabbit 太慢,而是这样我们已经构建了我们的数据并推动它不是很好。解决这个问题将涉及数据建模,但实现媒介是 XML 文件和 Java 代码,而不是数据库表和 SQL。DBA 通常对这类事情了解很多吗?
使我无法完全排除在设计和开发基于持久层之上的应用程序时对 DBA 的需求的原因是怀疑。我不太相信通过使用预打包的解决方案可以完全消除对特定应用程序进行数据库优化的需求。
我错过了关键点吗?熟练的 DBA 是否可以调整休眠配置文件以使我的应用程序的特定用例变得异常快速?在没有 DBA 手动调整数据库本身、构建索引等的情况下考虑运行高负载 Hibernate 应用程序是不是很疯狂?或者开发领域中是否有专门优化基于 XML 的数据模型和抽象持久层的新生物?