まとめると以下のとおり
- データが論理的に分散しているか、どうか?分散しているとあまりSQLによる高速化のメリットはない。(というか、下手にジョインを行うとオプティマイザがへんな実行計画を作って、かえって遅くなる場合もある)よって、データアクセス層をつくって、ビジネスロジック部分は分散環境を意識させないシステムを作るべきである。つまり、ドメインモデルを使うほうがよい。ただし、もし、SQL in Logicを使うのであれば、ビューやシノニムを使用して、間接的にSQLを実行することにより意識させなくすることもできる。ただし、この場合高速化のメリットは少ない。
- ロジックをSQLに入れるならば、移植性は諦めた方がいい。
- 致命的なパフォーマンス問題が発生したらSQLの改善を考える
あと重要なことをいくつか