質問: JavaとOracleを使って業務システムを開発しています。 ビジネスロジックをどこに持ってくるか悩んでいます。 ストアドプロシージャにビジネスロジックを実装した方がパフォーマンスもよくなると思うのですが、社内的には反対意見も多いです。 ストアドプロシージャにビジネスロジックことがある方、検討したことがある方、利点や弊害など教えてください。 逆にJava側に乗せた方がよいという方も、ご意見頂戴できればありがたいです。
回答: 以前に何百本もあるSPを全部DBのバージョンアップの為に当初の仕様の通り動作するか確認したことがあります。 Oracle8から9iだったと記憶していますが、、SPの内部的な動作がDBのバージョンで変わることもありえますし、特殊なpackageはバージョンアップで使えなくなることもありえます。 「そんなあやういSPを作ってるからチェックしなおさなきゃいけないんだ。」と言われれば言い返すことはできませんが、プロジェクトメンバー全員、はたまた、外注から納入されて、テスト結果が仕様に合ったものなら、細かいところまでは見きれませんよね。 SPにした場合のメリットもたくさんありますので、どちらにしたほうが良いのかは一概には言えないとは思いますが、こういった経験をした者もいる、ということで。 JAVAでほとんど同様のSQL文字列を作って実行するのだったらそれはJAVAである必要は無いと思いますけど。