module ActiveRecord::Explain
Public Class Methods
extended(base)
click to toggle source
# File lib/active_record/explain.rb, line 5 def self.extended(base) base.class_eval do # If a query takes longer than these many seconds we log its query plan # automatically. nil disables this feature. class_attribute :auto_explain_threshold_in_seconds, :instance_writer => false self.auto_explain_threshold_in_seconds = nil end end
Public Instance Methods
silence_auto_explain() { || ... }
click to toggle source
Silences automatic EXPLAIN logging for the duration of the block.
This has high priority, no EXPLAINs will be run even if downwards the threshold is set to 0.
As the name of the method suggests this only applies to automatic EXPLAINs, manual calls to +ActiveRecord::Relation#explain+ run.
# File lib/active_record/explain.rb, line 78 def silence_auto_explain current = Thread.current original, current[:available_queries_for_explain] = current[:available_queries_for_explain], false yield ensure current[:available_queries_for_explain] = original end