Module: SqlQueryAnalyzer::ExplainAnalyzer

Defined in:
lib/sql_query_analyzer/explain_analyzer.rb

Instance Method Summary collapse

Instance Method Details

#explain_with_suggestionsObject



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

def explain_with_suggestions
  explain_output = explain(analyze: true, verbose: true, costs: true, buffers: true, timing: true)

  engine = SqlQueryAnalyzer::SuggestionEngine.new(explain_output, to_sql)
  suggestions = engine.analyze

  puts "\n=== EXPLAIN ANALYZE OUTPUT ===\n"
  puts explain_output
  puts "\n=== SUGGESTIONS ===\n"
  suggestions.each do |suggestion|
    puts "[#{suggestion.severity.to_s.upcase}] #{suggestion.message}"
  end
rescue => e
  puts "Error analyzing query: #{e.message}"
end