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