Module: SqlQueryAnalyzer::ExplainAnalyzer

Defined in:
lib/sql_query_analyzer/explain_analyzer.rb

Instance Method Summary collapse

Instance Method Details

#explain_with_suggestions(run: false) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/sql_query_analyzer/explain_analyzer.rb', line 4

def explain_with_suggestions(run: false)

  unless self.is_a?(ActiveRecord::Relation)
    puts "⚠️ Not an ActiveRecord Relation. Skipping explain_with_suggestions."
    return
  end

  raw_sql = self.to_sql

  explain_output = SqlQueryAnalyzer::Execute.explain_sql(raw_sql, run)
  engine = SqlQueryAnalyzer::SuggestionEngine.new(explain_output, raw_sql)
  suggestions = engine.analyze

  nil
rescue => e
  puts "Error analyzing query: #{e.message}"
end