Class: RailsPulse::Analysis::QueryCharacteristicsAnalyzer

Inherits:
BaseAnalyzer
  • Object
show all
Defined in:
app/services/rails_pulse/analysis/query_characteristics_analyzer.rb

Instance Attribute Summary

Attributes inherited from BaseAnalyzer

#operations, #query

Instance Method Summary collapse

Methods inherited from BaseAnalyzer

#initialize

Constructor Details

This class inherits a constructor from RailsPulse::Analysis::BaseAnalyzer

Instance Method Details

#analyzeObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/rails_pulse/analysis/query_characteristics_analyzer.rb', line 6

def analyze
  {
    query_type: detect_query_type,
    table_count: count_tables,
    join_count: count_joins,
    where_clause_complexity: analyze_where_complexity,
    has_subqueries: has_subqueries?,
    has_limit: has_limit?,
    has_order_by: has_order_by?,
    has_group_by: has_group_by?,
    has_having: has_having?,
    has_distinct: has_distinct?,
    has_aggregations: has_aggregations?,
    estimated_complexity: calculate_complexity_score,
    pattern_issues: detect_pattern_issues
  }
end