Ruby on Rails:获取有关统计信息的ActivereCord连接的查询总数



获得Ruby中ActivereCord连接的查询数量/计数的简便方法是什么?

订阅该线程中所述,实现似乎有点复杂,因为我只希望在连接的整个生命周期内发出的真实总查询数量。

,所以我自己做了一个monkeypatch初始化器:)

### Query Counter for mysql2 adapter
module ActiveRecord
  module ConnectionAdapters
    class AbstractAdapter
      @@querycount = 0
      attr_reader :querycount
      def self.querycount; @@querycount; end
    end
    class Mysql2Adapter < AbstractMysqlAdapter
      def exec_query(sql, name = 'SQL', binds = [])
        @@querycount += 1
        @querycount = 0 if @querycount.nil?
        @querycount += 1
        result = execute(sql, name)
        ActiveRecord::Result.new(result.fields, result.to_a)
      end
    end
  end
end

然后,您可以获取所有连接的总质量

ActiveRecord::ConnectionAdapters::AbstractAdapter.querycount

最新更新