explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ewou

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 6,441.108 ↓ 3.0 3 1

Nested Loop (cost=1,000.85..52,467.07 rows=1 width=1,162) (actual time=4,025.250..6,441.108 rows=3 loops=1)

2. 8.260 6,441.107 ↓ 4.0 4 1

Gather (cost=1,000.42..52,461.77 rows=1 width=1,162) (actual time=4,025.223..6,441.107 rows=4 loops=1)

  • Workers Planned: 3
  • Workers Launched: 3
3. 5,978.543 6,432.847 ↑ 1.0 1 4

Nested Loop (cost=0.42..51,461.67 rows=1 width=1,162) (actual time=3,088.091..6,432.847 rows=1 loops=4)

4. 452.502 452.502 ↑ 1.4 3,317 4

Parallel Seq Scan on payment_outstanding po (cost=0.00..29,198.42 rows=4,661 width=8) (actual time=4.756..452.502 rows=3,317 loops=4)

  • Filter: (active AND (outstanding_amount > '0'::double precision) AND (entity_type = 'invoice'::payment_outstanding_entity_type))
  • Rows Removed by Filter: 434779
5. 1.802 1.802 ↓ 0.0 0 13,267

Index Scan using reminder_mail_log_invoice_id_idx on reminder_mail_log rml (cost=0.42..4.77 rows=1 width=1,158) (actual time=1.802..1.802 rows=0 loops=13,267)

  • Index Cond: (invoice_id = po.invoice_payment_note_id)
  • Filter: (active AND (po.client_code_id = client_code_id) AND ((status)::integer <> 3) AND ((((reminder_1 ->> 'sent_date'::text) < '2019-08-13 10:57:17'::text) AND ((status)::integer = 0)) OR (((reminder_2 ->> 'sent_date'::text) < '2019-08-13 10:57:17'::text) AND ((status)::integer = 1))))
  • Rows Removed by Filter: 1
6. 0.056 0.056 ↑ 1.0 1 4

Index Scan using eos_user_client_code_id_index on eos_user eos (cost=0.42..5.28 rows=1 width=8) (actual time=0.013..0.014 rows=1 loops=4)

  • Index Cond: (client_code_id = po.client_code_id)
  • Filter: (active AND ((roles -> 'roles'::text) @> '["23"]'::jsonb))