explain.depesz.com

PostgreSQL's explain analyze made readable

Result: fn3W

Settings

Optimization(s) for this plan:

# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Unique (cost=13,351.98..13,354.02 rows=37 width=202) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=13,351.98..13,352.07 rows=37 width=202) (actual rows= loops=)

  • Sort Key: ic.pymntgw_id, ic.receiptid, ic.referencenum, ic.responsecode, ic.iso, ic.authcode, ic.transtime, ic.transdate, ic.transtype, ic.complete, ic.message, ic.transamount, ic.cardtype, ic.txnnumber, ic.timedout, ic.datakey, ic.ressuccess, ic.paymenttype, ic.cuser, ic.cdate, ic.maskedpan
3. 0.000 0.000 ↓ 0.0

Gather (cost=1,285.76..13,351.02 rows=37 width=202) (actual rows= loops=)

  • Workers Planned: 1
4. 0.000 0.000 ↓ 0.0

Nested Loop Anti Join (cost=285.76..12,347.32 rows=22 width=202) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=285.34..12,329.94 rows=27 width=202) (actual rows= loops=)

  • Join Filter: (ar.pymntgw_id = ic.pymntgw_id)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=285.05..12,306.32 rows=18 width=10) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on pymntgw_ic_ar ar (cost=284.63..2,595.80 rows=2,591 width=12) (actual rows= loops=)

  • Recheck Cond: (txn_id IS NOT NULL)
  • Filter: (COALESCE(res_txn_id, '-1'::numeric) < '0'::numeric)
8. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on pymntgwicar_idx04 (cost=0.00..283.53 rows=13,215 width=0) (actual rows= loops=)

  • Index Cond: (txn_id IS NOT NULL)
9. 0.000 0.000 ↓ 0.0

Index Scan using pymntgwogdtl_idx02 on pymntgw_og_dtl dtl (cost=0.42..3.73 rows=2 width=8) (actual rows= loops=)

  • Index Cond: (pymntgw_id = ar.pymntgw_id)
  • Filter: (ar.txn_id = txn_id)
10. 0.000 0.000 ↓ 0.0

Index Scan using pymntgwic_idx01 on pymntgw_ic ic (cost=0.29..1.30 rows=1 width=202) (actual rows= loops=)

  • Index Cond: (pymntgw_id = dtl.pymntgw_id)
  • Filter: ((to_number((COALESCE(responsecode, '999'::character varying))::text, '000'::text) >= '0'::numeric) AND (to_number((COALESCE(responsecode, '999'::character varying))::text, '000'::text) <= '49'::numeric))
11. 0.000 0.000 ↓ 0.0

Index Scan using pymntgwicar_idx01 on pymntgw_ic_ar s (cost=0.42..29.20 rows=118 width=5) (actual rows= loops=)

  • Index Cond: (pymntgw_id = ic.pymntgw_id)
  • Filter: (COALESCE(res_txn_id, '-1'::numeric) > '0'::numeric)