1 つのケースではHibernateを使用し、2 つ目のケースでは Hibernate と Javaコンテンツ リポジトリ(具体的にはJackRabbit ) の組み合わせを使用する 1 組のアプリケーションの再構築を行っています。
再設計の重要な課題はパフォーマンスの向上であるため、アプリケーションの設計と開発にDBAを導入する価値があるかどうか疑問に思っています。
実動データベースの管理に DBA を関与させることの価値について、私が疑問を呈しているわけではないことに注意してください。しかし、過去のプロジェクトでは、優れた DBA が設計およびコーディング フェーズに関与し、データ構造を最適化する方法を考え出し、ストアド プロシージャにコードを挿入することが不可欠でした。
しかし、データベース構造が Hibernate と JackRabbit によってほぼ完全に管理されていることを考えると、それらを最適化する余地はあまりありません。確かに、それらがうまく機能しないことがわかった場合、DBA は潜在的に問題を特定し、それらを改善するためにパッチを提出することができますが、アプリケーションの方法で多くのことをしたい (またはできる) かどうかはわかりません-特定のチューニング。
このタイプのアプリケーションでの DBA の役割について考えるもう 1 つの理由は、パフォーマンスの問題の大部分が永続化レイヤーの上にある可能性が高いことです。つまり、データベース、休止状態、または JackRabbit が遅すぎるということではありません。データを構造化してプッシュするのはあまり良くありません。これを修正するにはデータ モデリングが必要ですが、実装媒体はデータベース テーブルと SQL ではなく、XML ファイルと Java コードです。DBA は通常、この種のことについてよく知っていますか?
永続化レイヤーの上に構築されたアプリケーションの設計と開発において DBA の必要性を完全に否定できないのは、懐疑論です。事前にパッケージ化されたソリューションを使用することで、特定のアプリケーションのデータベース最適化の必要性が完全になくなるとは思えません。
キーポイントがありませんか?熟練した DBA は、休止状態の構成ファイルを微調整して、アプリの特定のユース ケースで非常に高速に処理できますか? DBA が DB 自体を手動で調整したり、インデックスを作成したりせずに、高負荷の Hibernate アプリを実行することを検討するのは狂気ですか? それとも、XML ベースのデータ モデルと抽象化された永続化レイヤーの最適化を専門とする新しい生き物が開発環境に登場するのでしょうか?