makoラボ

日常や勉強会や技術ネタ

ORマッパーを使う時に気にしていること

ふと、自分がORマッパーを使う時に何を気にするだろう?と思う事があったので、まとめてみました。

ちなみに、ORマッパー否定派ではありません。効果的に使えば全然いいと思いますし、むしろ好きな方です。

気にしていること

出力されるSQL

自分が意図した通りに出力されているかどうかが気になります。確かにORマッパーの自動生成は楽ちんですが、どんな感じに生成されるのかは最低限知っとかないとなと思ったりしてます。

SQLの実行タイミング

いつ実行されるの?今なの?ってのが気になります。どのメソッドを実行するとSQLが発行されてデータベースにアクセスされるのかは分かっとかないとなと思ったりします。

データベースアクセス

無駄にSQLを発行してないか?とかデータベースへのアクセスが無駄に発生してないかが気になります。上の2つに絡む事ですが気にしとかないとなと思うところです。

トランザクションの範囲

どこからどこまでがトランザクションの範囲なの?ってのが気になります。まぁちゃんとメソッドとか調べとけよって事ですが。。。

ロックはどうなってる?

テーブルロック、レコードロック、どの単位?ロックがかかってる?ロックの状態が気になります。更新系もそうですが、SELECTするだけでロックがかかるデータベースもあるので注意です。

まとめ

ばーっと思いついたものを書きなぐってみました。ORマッパーを使うにしてもSQLやデータベースの事を気にしようよと思います。知っとくと処理速度が向上したり、今の処理の問題点が出てきたりするんじゃなかろうかと思います。

みなさんはORマッパーを使う時にどこを気にしてますか?