Skip to content

perf(emergency): optimise EXISTS subqueries and prefetch related data - #2768

Merged
susilnem merged 1 commit into
project/dref-emergency-pagesfrom
feature/optimise-query-ermergency-page
Jun 25, 2026
Merged

perf(emergency): optimise EXISTS subqueries and prefetch related data#2768
susilnem merged 1 commit into
project/dref-emergency-pagesfrom
feature/optimise-query-ermergency-page

Conversation

@susilnem

Copy link
Copy Markdown
Member

Changes

  • Split ordered querysets (used in Subquery) from unordered ones (used in
    Exists)
  • removes redundant ORDER BY from EXISTS() SQL, cutting EA stage
    response time ~25%
  • Add prefetch_related for field_reports and drefoperationalupdate_set in
    viewset and serializers
  • reduces list endpoint queries ~15% (N+1 -> batch)

Stats

Metric Before After Δ
Detail avg response time 291.6 ms 231.1 ms -21%
EA stage response time 652 ms 488 ms -25%
List queries (8 events) 46 39 -15%
List queries per event 5.8 4.9 -16%
Detail query count 11.9 11.9 0 (expected)

Checklist

Things that should succeed before merging.

  • Updated/ran unit tests
  • Updated CHANGELOG.md

Release

If there is a version update, make sure to tag the repository with the latest version.

@sudip-khanal sudip-khanal left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@susilnem
susilnem force-pushed the feature/optimise-query-ermergency-page branch from 6148a07 to 8d3c997 Compare June 25, 2026 08:43
…ld reports and ops updates

- Split ordered querysets (used in Subquery) from unordered ones (used in
Exists)
— removes redundant ORDER BY from EXISTS() SQL, cutting EA stage
response time ~25%
- Add prefetch_related for field_reports and drefoperationalupdate_set in
viewset and serializers
— reduces list endpoint queries ~15% (N+1 -> batch)
@susilnem
susilnem force-pushed the feature/optimise-query-ermergency-page branch from 8d3c997 to 778d587 Compare June 25, 2026 09:17
@susilnem
susilnem marked this pull request as ready for review June 25, 2026 09:34
@susilnem
susilnem merged commit f01bd7f into project/dref-emergency-pages Jun 25, 2026
3 checks passed
@susilnem
susilnem deleted the feature/optimise-query-ermergency-page branch June 25, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants