Skip to content

Performance Issue: N+1 Query Pattern in Activity Logs Query -created-by-agentic #73

@asafchen-dig

Description

@asafchen-dig

Issue Description

A severe performance degradation has been detected in the activity logs query system due to an N+1 query pattern.

Current Behavior

  • Query duration: 2.72 seconds (normal: 3.09 milliseconds)
  • Query is being executed 82 times per request in 41% of requests
  • Endpoint: /api/clinic-activity/query-logs
  • Criticality: 0.87

Root Cause

The current implementation executes the same query multiple times in a loop instead of using a single optimized query. This N+1 query pattern is causing significant performance overhead.

Impact

  • Severely degraded response times (2.72s vs expected 3.09ms)
  • Increased database load
  • Poor user experience
  • Resource inefficiency

Solution

A PR has been created (#72) that implements the following fixes:

  1. Replace multiple individual queries with a single optimized query
  2. Implement pagination to limit result set size
  3. Add proper response structure with pagination metadata
  4. Add OpenTelemetry instrumentation for better observability

Expected Improvement

  • Query duration reduction from 2.72s to ~10ms
  • Elimination of N+1 query pattern
  • Reduced database load
  • Better resource utilization

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions