explain.depesz.com

PostgreSQL's explain analyze made readable

Result: aCFM

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 290,773.484 ↑ 1.0 1 1

Finalize Aggregate (cost=15,984,359.20..15,984,359.21 rows=1 width=8) (actual time=290,773.483..290,773.484 rows=1 loops=1)

2. 17.107 290,774.943 ↓ 1.5 3 1

Gather (cost=15,984,358.98..15,984,359.19 rows=2 width=8) (actual time=290,764.666..290,774.943 rows=3 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
3. 10.996 290,757.836 ↑ 1.0 1 3 / 3

Partial Aggregate (cost=15,983,358.98..15,983,358.99 rows=1 width=8) (actual time=290,757.836..290,757.836 rows=1 loops=3)

4. 2,338.773 290,746.840 ↑ 6.9 103,784 3 / 3

Hash Semi Join (cost=2,473,282.84..15,981,557.36 rows=720,648 width=4) (actual time=33,898.488..290,746.840 rows=103,784 loops=3)

  • Hash Cond: (scheduling_flownode.target_object_id = u0.id)
5. 1,339.542 286,931.156 ↑ 1.2 1,492,816 3 / 3

Nested Loop (cost=1,913,572.68..15,409,289.43 rows=1,729,737 width=8) (actual time=22,454.846..286,931.156 rows=1,492,816 loops=3)

6. 53,421.053 76,597.374 ↑ 1.2 1,492,816 3 / 3

Hash Join (cost=1,913,572.11..2,579,844.73 rows=1,729,737 width=8) (actual time=22,305.405..76,597.374 rows=1,492,816 loops=3)

  • Hash Cond: (scheduling_attempt.recipient_id = scheduling_recipient.id)
7. 887.194 887.194 ↑ 1.2 1,492,816 3 / 3

Parallel Index Scan using scheduling__executi_8d7109_idx on scheduling_attempt (cost=0.57..439,146.63 rows=1,729,737 width=8) (actual time=0.012..887.194 rows=1,492,816 loops=3)

  • Index Cond: (execution_time >= '2020-06-20 04:30:40.003215+00'::timestamp with time zone)
8. 11,453.413 22,289.127 ↑ 1.0 53,522,423 3 / 3

Hash (cost=1,035,469.24..1,035,469.24 rows=53,522,424 width=8) (actual time=22,289.127..22,289.127 rows=53,522,423 loops=3)

  • Buckets: 131,072 Batches: 1,024 Memory Usage: 3,068kB
9. 10,835.714 10,835.714 ↑ 1.0 53,522,423 3 / 3

Seq Scan on scheduling_recipient (cost=0.00..1,035,469.24 rows=53,522,424 width=8) (actual time=0.021..10,835.714 rows=53,522,423 loops=3)

10. 208,994.240 208,994.240 ↑ 1.0 1 4,478,448 / 3

Index Scan using scheduling_flownode_pkey on scheduling_flownode (cost=0.57..7.42 rows=1 width=8) (actual time=0.140..0.140 rows=1 loops=4,478,448)

  • Index Cond: (id = scheduling_recipient.root_flow_node_id)
11. 155.145 1,476.911 ↓ 10.2 707,154 3 / 3

Hash (cost=558,844.05..558,844.05 rows=69,289 width=4) (actual time=1,476.911..1,476.911 rows=707,154 loops=3)

  • Buckets: 131,072 (originally 131072) Batches: 16 (originally 1) Memory Usage: 3,073kB
12. 87.102 1,321.766 ↓ 10.2 707,154 3 / 3

Nested Loop (cost=0.56..558,844.05 rows=69,289 width=4) (actual time=0.274..1,321.766 rows=707,154 loops=3)

13. 0.044 0.044 ↑ 1.0 9 3 / 3

Seq Scan on xact_templatelanguage u1 (cost=0.00..3.35 rows=9 width=4) (actual time=0.011..0.044 rows=9 loops=3)

  • Filter: (template_id = 3)
  • Rows Removed by Filter: 99
14. 1,234.620 1,234.620 ↓ 6.6 78,573 27 / 3

Index Scan using xact_messag_templat_dab7cd_idx on xact_message u0 (cost=0.56..61,974.63 rows=11,878 width=8) (actual time=0.649..137.180 rows=78,573 loops=27)

  • Index Cond: ((templatelanguage_id = u1.id) AND (send_on >= '2020-06-20 04:30:40.003215+00'::timestamp with time zone))
  • Filter: (state <> 2)