ISUCONのPerlアプリでよく使用されているDBIx::Sunnyですが、便利な機能として、SQLがどこで実行されたかを実行されるSQLにコメントする機能があります。
こういう感じでスローログに表示されるので、どこでSQLが発行されているか探す必要がなくて便利です。
SELECT * FROM users /* lib/MyApp/Web.pm line 56 */
アプリケーションログではなく、SQL自体にコメントで入っている事が重要で、SQLを改善したい時に見るのは、アプリケーションログではなくスローログを見ます。スローログを見た時点で、どこで発行されたSQLなのかはっきりしていると無駄にそのSQLがどこで発行されたのか、探す必要がなくなり、実際に集中すべきSQLの改善に集中出来ます。というのを、Railsでもやりたかったので、ActiveRecordで作ってみました。github.com
ちなみにSQLに直接埋め込まれているので、Railsのアプリケーションログにも出ます。
Info Load (0.5ms) SELECT `infos`.* FROM `infos` /* /Users/hisaichi5518/projects/sample/app/cells/infos/index.html.erb:3:in `_app_cells_infos_index_html_erb___2113458239111152552_70242821135200' */