ORM導入時にでるSQL文を書きたいという意見
合理的な理由で部分的にSQL文を利用する程度あればよいのですが、くわずもの嫌いのメンバーがORMを導入する際に出てくる意見として「ORMよりもSQL文の方が性能がでるのだからSQL文で記述したい」がある
この意見については大きく2つのポイントで確認するようにしている
- 本当にORMでは性能要求を満たせないのか
- 直接SQL文を記述するデメリットは?
最初の性能要求については、性能要求はそもそも厳しいものでなかったり、ボトルネックがインデックスなど別の要因で改善効果があまりない場合はORM*1 vs SQLで性能を語る必要はない。
2つ目は、生産性・保守性のインパクトはどの程度か性能は絶対的なものか、属人性がなく性能が出るSQL文を記述することは可能なメンバーばかりなのかを考えてもらう
ORMでよくあがる集約やジョインの性能問題はViewを作ってしまえば簡単に防げる類で、これを更に進めてView=カスタムSQL文と考えると検索系についてはほぼSQLを記述するのと遜色ないレベルまで最適化を行うことができる
*1:Object Relational Mapping