class ActiveRecord::ExplainRegistry::Subscriber
Constants
- EXPLAINED_SQLS
- IGNORED_PAYLOADS
-
SCHEMA queries cannot be EXPLAINed, also we do not want to run EXPLAIN on our own EXPLAINs no matter how loopingly beautiful that would be.
On the other hand, we want to monitor the performance of our real database queries, not the performance of the access to the query cache.
- MUTEX
Public Class Methods
# File activerecord/lib/active_record/explain_registry.rb, line 16 def ensure_subscribed return if @subscribed MUTEX.synchronize do return if @subscribed ActiveSupport::Notifications.subscribe("sql.active_record", new) @subscribed = true end end
Public Instance Methods
# File activerecord/lib/active_record/explain_registry.rb, line 31 def finish(name, id, payload) if ExplainRegistry.collect? && !ignore_payload?(payload) ExplainRegistry.queries << payload.values_at(:sql, :binds) end end
# File activerecord/lib/active_record/explain_registry.rb, line 48 def ignore_payload?(payload) payload[:exception] || payload[:cached] || IGNORED_PAYLOADS.include?(payload[:name]) || !payload[:sql].match?(EXPLAINED_SQLS) end
# File activerecord/lib/active_record/explain_registry.rb, line 37 def silenced?(_name) !ExplainRegistry.collect? end
# File activerecord/lib/active_record/explain_registry.rb, line 27 def start(name, id, payload) # unused end