explain.depesz.com

PostgreSQL's explain analyze made readable

Result: MRQU

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 3,764.073 ↑ 1.0 1 1

Finalize Aggregate (cost=1,202,558.00..1,202,558.01 rows=1 width=8) (actual time=3,764.073..3,764.073 rows=1 loops=1)

2. 26.013 3,765.432 ↓ 1.5 3 1

Gather (cost=1,202,557.78..1,202,557.99 rows=2 width=8) (actual time=3,727.646..3,765.432 rows=3 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
3. 9.626 3,739.419 ↑ 1.0 1 3 / 3

Partial Aggregate (cost=1,201,557.78..1,201,557.79 rows=1 width=8) (actual time=3,739.419..3,739.419 rows=1 loops=3)

4. 0.000 3,729.793 ↓ 63.2 98,789 3 / 3

Nested Loop (cost=1,083,358.93..1,201,553.88 rows=1,562 width=4) (actual time=1,959.237..3,729.793 rows=98,789 loops=3)

  • Join Filter: (scheduling_attempt.recipient_id = scheduling_recipient.id)
5. 1,311.251 3,435.131 ↓ 49.0 98,789 3 / 3

Hash Join (cost=1,083,358.37..1,195,680.29 rows=2,015 width=12) (actual time=1,959.213..3,435.131 rows=98,789 loops=3)

  • Hash Cond: (scheduling_attempt.recipient_id = xact_message.recipient_id)
6. 167.403 167.403 ↑ 1.3 336,706 3 / 3

Parallel Index Scan using scheduling__executi_8d7109_idx on scheduling_attempt (cost=0.57..106,622.33 rows=424,540 width=8) (actual time=0.014..167.403 rows=336,706 loops=3)

  • Index Cond: (execution_time >= '2020-06-22 10:12:40.266861+00'::timestamp with time zone)
7. 287.081 1,956.477 ↓ 7.1 1,403,802 3 / 3

Hash (cost=1,080,126.86..1,080,126.86 rows=196,875 width=4) (actual time=1,956.477..1,956.477 rows=1,403,802 loops=3)

  • Buckets: 131,072 (originally 131072) Batches: 32 (originally 4) Memory Usage: 3,073kB
8. 313.528 1,669.396 ↓ 8.8 1,739,080 3 / 3

Nested Loop (cost=20,669.25..1,080,126.86 rows=196,875 width=4) (actual time=56.322..1,669.396 rows=1,739,080 loops=3)

9. 0.045 0.045 ↑ 1.0 9 3 / 3

Seq Scan on xact_templatelanguage (cost=0.00..3.35 rows=9 width=4) (actual time=0.010..0.045 rows=9 loops=3)

  • Filter: (template_id = 3)
  • Rows Removed by Filter: 99
10. 295.677 1,355.823 ↓ 5.7 193,231 27 / 3

Bitmap Heap Scan on xact_message (cost=20,669.25..119,676.22 rows=33,750 width=8) (actual time=119.034..150.647 rows=193,231 loops=27)

  • Recheck Cond: ((templatelanguage_id = xact_templatelanguage.id) AND (send_on >= '2020-06-10 10:15:03.14238+00'::timestamp with time zone))
  • Heap Blocks: exact=82,617
11. 1,060.146 1,060.146 ↓ 5.7 193,231 27 / 3

Bitmap Index Scan on xact_messag_templat_dab7cd_idx (cost=0.00..20,660.81 rows=33,750 width=0) (actual time=117.794..117.794 rows=193,231 loops=27)

  • Index Cond: ((templatelanguage_id = xact_templatelanguage.id) AND (send_on >= '2020-06-10 10:15:03.14238+00'::timestamp with time zone))
12. 296.366 296.366 ↑ 1.0 1 296,366 / 3

Index Only Scan using scheduling_recipient_pkey on scheduling_recipient (cost=0.56..2.90 rows=1 width=4) (actual time=0.003..0.003 rows=1 loops=296,366)

  • Index Cond: (id = xact_message.recipient_id)
  • Heap Fetches: 99,081