Class: RailsPulse::QueryAnalysisService
- Inherits:
-
Object
- Object
- RailsPulse::QueryAnalysisService
- Defined in:
- app/services/rails_pulse/query_analysis_service.rb
Class Method Summary collapse
Instance Method Summary collapse
- #analyze ⇒ Object
-
#initialize(query) ⇒ QueryAnalysisService
constructor
A new instance of QueryAnalysisService.
Constructor Details
#initialize(query) ⇒ QueryAnalysisService
Returns a new instance of QueryAnalysisService.
10 11 12 13 |
# File 'app/services/rails_pulse/query_analysis_service.rb', line 10 def initialize(query) @query = query @operations = fetch_recent_operations end |
Class Method Details
.analyze_query(query_id) ⇒ Object
5 6 7 8 |
# File 'app/services/rails_pulse/query_analysis_service.rb', line 5 def self.analyze_query(query_id) query = RailsPulse::Query.find(query_id) new(query).analyze end |
Instance Method Details
#analyze ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/services/rails_pulse/query_analysis_service.rb', line 15 def analyze # Run all analyzers results = { analyzed_at: Time.current, query_characteristics: analyze_query_characteristics, index_recommendations: analyze_index_recommendations, n_plus_one_analysis: analyze_n_plus_one, explain_plan: analyze_explain_plan, backtrace_analysis: analyze_backtraces } # Generate consolidated suggestions results[:suggestions] = generate_suggestions(results) # Build compatible format for query model compatible_results = build_compatible_results(results) # Save results to query save_results_to_query(compatible_results) results end |