アプリの種類を問わず、遅いクエリのログを読むのはパフォーマンス向上のためのリファクタリングで弱い部分を発見するよい方法のひとつです。 以前の私は、遅いクエリのログというとデータベースエンジンで生成されたログのことが念頭にありました。しかし、データベースの遅いクエリのログを取る独自のメカニズムを作れることをご存知でしょうか?RailsのActiveSupport::Notificationsモジュールを使うと、指定のイベントをサブスクライブできます。イベントのひとつに sql.active_recordがあり、これはデータベース操作のたびにトリガされます。 次のような感じで使えます。 ActiveSupport::Notifications.subscribe('sql.active_record') do |name, start, finish, id, payload| # inter
![Rails tips: 遅いクエリのログをDB設定変更なしで取るコツ(翻訳)|TechRacho by BPS株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/9f8cb8804bf2d75f9e0cce8b3e994c0eb69e2f98/height=288;version=1;width=512/https%3A%2F%2Ftechracho.bpsinc.jp%2Fwp-content%2Fuploads%2F2018%2F04%2Frails_logging_slow_query_with_no_db_config_eyecatch.png)