explain.depesz.com

PostgreSQL's explain analyze made readable

Result: M1QJ

Settings
# exclusive inclusive rows x rows loops node
1. 0.016 609.901 ↑ 1.0 1 1

Aggregate (cost=288,861.50..288,861.51 rows=1 width=8) (actual time=609.901..609.901 rows=1 loops=1)

  • Output: count(DISTINCT att.account_transaction_id)
2. 0.002 609.885 ↑ 1.0 1 1

Nested Loop Left Join (cost=1,010.61..288,861.49 rows=1 width=8) (actual time=601.780..609.885 rows=1 loops=1)

  • Output: att.account_transaction_id
3. 0.002 609.881 ↑ 1.0 1 1

Nested Loop Left Join (cost=1,010.05..288,860.88 rows=1 width=16) (actual time=601.776..609.881 rows=1 loops=1)

  • Output: att.account_transaction_id, rr.reconciliation_result_id
4. 0.000 609.871 ↑ 1.0 1 1

Nested Loop (cost=1,009.62..288,860.37 rows=1 width=8) (actual time=601.767..609.871 rows=1 loops=1)

  • Output: att.account_transaction_id
5. 32.756 628.780 ↑ 1.0 1 1

Gather (cost=1,009.18..288,851.91 rows=1 width=8) (actual time=601.756..628.780 rows=1 loops=1)

  • Output: mtae.money_transfer_event_id
  • Workers Planned: 4
  • Workers Launched: 4
6. 0.001 596.024 ↓ 0.0 0 5 / 5

Nested Loop (cost=9.18..287,851.81 rows=1 width=8) (actual time=594.426..596.024 rows=0 loops=5)

  • Output: mtae.money_transfer_event_id
  • Inner Unique: true
  • Worker 0: actual time=592.184..592.184 rows=0 loops=1
  • Worker 1: actual time=593.541..593.541 rows=0 loops=1
  • Worker 2: actual time=593.564..593.564 rows=0 loops=1
  • Worker 3: actual time=593.580..593.580 rows=0 loops=1
7. 0.003 596.018 ↓ 0.0 0 5 / 5

Nested Loop (cost=8.89..287,851.48 rows=1 width=16) (actual time=594.420..596.018 rows=0 loops=5)

  • Output: mtae.money_transfer_event_id, me.account_id
  • Worker 0: actual time=592.183..592.183 rows=0 loops=1
  • Worker 1: actual time=593.540..593.540 rows=0 loops=1
  • Worker 2: actual time=593.564..593.564 rows=0 loops=1
  • Worker 3: actual time=593.580..593.580 rows=0 loops=1
8. 596.010 596.010 ↓ 0.0 0 5 / 5

Parallel Seq Scan on pegasus.money_transfer_auditable_event mtae (cost=0.00..287,834.55 rows=1 width=24) (actual time=594.412..596.010 rows=0 loops=5)

  • Output: mtae.money_transfer_event_id, mtae.money, mtae.money_currency, mtae.description, mtae.source_id, mtae.destination_id, mtae.when_occurred, mtae.when_noticed, mtae.auditable_event_state_type_id, mtae.trace_id, mtae.event_type, mtae.initiator_id, mtae.initiator_user_id, mtae.auto_release_on, mtae.original_trace_id, mtae.payment_category_type_id, mtae.kyc_id
  • Filter: ((mtae.trace_id)::text = '2a05101e-273a-11ea-a511-687a202f1654'::text)
  • Rows Removed by Filter: 2,363,209
  • Worker 0: actual time=592.182..592.183 rows=0 loops=1
  • Worker 1: actual time=593.539..593.539 rows=0 loops=1
  • Worker 2: actual time=593.563..593.563 rows=0 loops=1
  • Worker 3: actual time=593.579..593.579 rows=0 loops=1
9. 0.001 0.005 ↑ 1.0 2 1 / 5

Bitmap Heap Scan on pegasus.monetary_endpoint me (cost=8.89..16.91 rows=2 width=16) (actual time=0.023..0.024 rows=2 loops=1)

  • Output: me.monetary_endpoint_id, me.monetary_endpoint_type, me.description, me.account_id, me.country_code, me.card_detail_id, me.card_program_id, me.card_token, me.generic_payee_id, me.card_scheme_code, me.currency, me.execution_mode
  • Recheck Cond: ((mtae.destination_id = me.monetary_endpoint_id) OR (mtae.source_id = me.monetary_endpoint_id))
  • Heap Blocks: exact=1
10. 0.001 0.004 ↓ 0.0 0 1 / 5

BitmapOr (cost=8.89..8.89 rows=2 width=0) (actual time=0.019..0.019 rows=0 loops=1)

11. 0.002 0.002 ↑ 1.0 1 1 / 5

Bitmap Index Scan on monetary_endpoint_pkey (cost=0.00..4.45 rows=1 width=0) (actual time=0.011..0.012 rows=1 loops=1)

  • Index Cond: (mtae.destination_id = me.monetary_endpoint_id)
12. 0.000 0.000 ↑ 1.0 1 1 / 5

Bitmap Index Scan on monetary_endpoint_pkey (cost=0.00..4.45 rows=1 width=0) (actual time=0.002..0.002 rows=1 loops=1)

  • Index Cond: (mtae.source_id = me.monetary_endpoint_id)
13. 0.005 0.005 ↓ 0.0 0 2 / 5

Index Only Scan using idx_account_account_holder on pegasus.account a (cost=0.29..0.31 rows=1 width=8) (actual time=0.012..0.012 rows=0 loops=2)

  • Output: a.account_holder_id, a.account_id
  • Index Cond: ((a.account_holder_id = '113051'::bigint) AND (a.account_id = me.account_id))
  • Heap Fetches: 1
14. 0.010 0.010 ↑ 1.0 1 1

Index Scan using fki_transaction_event_id_fkey on pegasus.account_transaction att (cost=0.43..8.45 rows=1 width=16) (actual time=0.009..0.010 rows=1 loops=1)

  • Output: att.account_transaction_id, att.created_on, att.auditable_event_id, att.external_reference, att.processor_type_id, att.reference, att.posted_on
  • Index Cond: (att.auditable_event_id = mtae.money_transfer_event_id)
15. 0.008 0.008 ↓ 0.0 0 1

Index Scan using idx_reconciliation_result_account_transaction_id on pegasus.reconciliation_result rr (cost=0.43..0.50 rows=1 width=16) (actual time=0.008..0.008 rows=0 loops=1)

  • Output: rr.reconciliation_result_id, rr.created_on, rr.account_transaction_id, rr.warning_level, rr.auditable_event_state_type_id, rr.warning_description
  • Index Cond: (att.account_transaction_id = rr.account_transaction_id)
16. 0.002 0.002 ↓ 0.0 0 1

Index Only Scan using reconciliation_data_reconciliation_result_id on pegasus.reconciliation_data rd (cost=0.56..0.60 rows=1 width=8) (actual time=0.002..0.002 rows=0 loops=1)

  • Output: rd.reconciliation_result_id
  • Index Cond: (rd.reconciliation_result_id = rr.reconciliation_result_id)
  • Heap Fetches: 0
Planning time : 1.078 ms
Execution time : 628.914 ms