explain.depesz.com

PostgreSQL's explain analyze made readable

Result: po0f : Optimization for: plan #N1QP

Settings

Optimization path:

# exclusive inclusive rows x rows loops node
1. 0.078 18,228.137 ↑ 4,038.1 7 1

Nested Loop Left Join (cost=0.69..3,079,973.46 rows=28,267 width=767) (actual time=2,496.164..18,228.137 rows=7 loops=1)

  • Output: k1.event_id, k1.event_uid, k1.calendar_id, k1.event_creator_id, k1.event_description, k1.event_location, k1.event_status, k1.event_attendees, k1.event_keywords, k1.event_exceptions, k1.event_title, k1.event_category, k1.event_recurenddate, k1.event_start, k1.event_end, k1.event_alarm, k1.event_modified, k1.event_private, k1.event_recurcount, k1.event_recurtype, k1.event_recurinterval, k1.event_recurdays, k1.event_realuid, k1.event_created, k1.event_modified_json, k1.event_timezone, k1.event_all_day, k1.event_is_deleted, k1.event_is_exception, k1.event_recurrence_id, k1.event_organizer_json, k1.organizer_calendar_id, k1.event_transparency, k1.event_sequence, k1.event_priority, k1.event_alarm_json, k1.event_recurrence_json, k1.event_attachments_json, k1.event_properties_json, k2.event_creator_id, k2.event_attendees, k2.calendar_id
2. 18,227.793 18,227.793 ↑ 566.6 7 1

Seq Scan on public.kronolith_events k1 (cost=0.00..3,014,711.70 rows=3,966 width=685) (actual time=2,496.110..18,227.793 rows=7 loops=1)

  • Output: k1.event_id, k1.event_uid, k1.calendar_id, k1.event_creator_id, k1.event_description, k1.event_location, k1.event_status, k1.event_attendees, k1.event_keywords, k1.event_exceptions, k1.event_title, k1.event_category, k1.event_recurenddate, k1.event_start, k1.event_end, k1.event_alarm, k1.event_modified, k1.event_private, k1.event_recurcount, k1.event_recurtype, k1.event_recurinterval, k1.event_recurdays, k1.event_realuid, k1.event_created, k1.event_modified_json, k1.event_timezone, k1.event_all_day, k1.event_is_deleted, k1.event_is_exception, k1.event_recurrence_id, k1.event_organizer_json, k1.organizer_calendar_id, k1.event_transparency, k1.event_sequence, k1.event_priority, k1.event_alarm_json, k1.event_recurrence_json, k1.event_attachments_json, k1.event_properties_json
  • Filter: ((k1.event_uid)::text ~~ '0ea36994-8c36-4f97-8d28-3e2957b57c79-1599634800@future%@RECURRENCE-ID'::text)
  • Rows Removed by Filter: 39,858,223
3. 0.266 0.266 ↓ 0.0 0 7

Index Scan using kronolith_events_uid_charlength_event_attendees_idx on public.kronolith_events k2 (cost=0.69..16.43 rows=3 width=126) (actual time=0.038..0.038 rows=0 loops=7)

  • Output: k2.event_id, k2.event_uid, k2.calendar_id, k2.event_creator_id, k2.event_description, k2.event_location, k2.event_status, k2.event_attendees, k2.event_keywords, k2.event_exceptions, k2.event_title, k2.event_category, k2.event_recurenddate, k2.event_start, k2.event_end, k2.event_alarm, k2.event_modified, k2.event_private, k2.event_recurcount, k2.event_recurtype, k2.event_recurinterval, k2.event_recurdays, k2.event_realuid, k2.event_created, k2.event_modified_json, k2.event_timezone, k2.event_all_day, k2.event_is_deleted, k2.event_is_exception, k2.event_recurrence_id, k2.event_organizer_json, k2.organizer_calendar_id, k2.event_transparency, k2.event_sequence, k2.event_priority, k2.event_alarm_json, k2.event_recurrence_json, k2.event_attachments_json, k2.event_properties_json
  • Index Cond: (((k1.event_uid)::text = (k2.event_uid)::text) AND (char_length(k2.event_attendees) > 10))
Planning time : 1.083 ms
Execution time : 18,228.266 ms