BBSにかこうかと思ったけど、主張ばっかりになったのでやめておいて、ブログで書く
http://bbs.wankuma.com/index.cgi?mode=al2&namber=19525
> O/R(ORM) マッピングの是非
>
http://blog.y-110.net/log/eid86.html とりあえず手の届かない所にSQLが行くというのは許容できないので、全体的には同意するけど。
>原因は十中八九データベース部分, 効率の悪い SQL でしょう。
そんなことはない。
もちろんたちの悪いSQLを平気に書くやつが多いのは確かだけど、それよりも性能要件はもっと複雑です。こんなSQL一個直すだけで解決するものばかりではありません。
Webアプリケーションのパフォーマンス確保のためのアプローチが3段階位あって、それがまったく方向性が逆のために、うまくあわないことによるパフォーマンスが出ないことのほうが多いと思います。
>そもそも何十行もの SQL文を見たことがありませんし, もしそのような SQL を書かなければならないのであれば, それは単純にテーブル設計が腐っているとしか思えません。
幸せなんだな・・・
テーブル設計が腐っていなくても業務が複雑ならすぐに(一発)数十行のSQLになるし、処理を書けば100行200行当たり前です。
ということで、本題ですが。
すべてのSQLはストアドの中で書きましょう。そうしないとどこでどんなSQLが呼ばれているか把握することは非常に困難になります。
まずはまとめるところから始める。
よくそういうコネクションをまとめるクラスとか作りたがりますが、それは必要ないでしょう。
それよりもデータセットなんかをうまく利用できるようにしたほうがつぶしがききます。
その上でどうしてもまとめないといけないようなことってのはうまくまとめてあげましょう。