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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions