explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 0XKC

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

Subquery Scan on v_fas_batch_summary_report (cost=1,188,976.96..1,189,381.96 rows=32,400 width=400) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=1,188,976.96..1,189,057.96 rows=32,400 width=400) (actual rows= loops=)

  • Sort Key: report.payment_date, report.batch_name
3. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=987,867.44..1,180,680.10 rows=32,400 width=400) (actual rows= loops=)

  • Hash Cond: (report.rro_account_number = rro.rh_account_number)
4. 0.000 0.000 ↓ 0.0

Subquery Scan on report (cost=980,966.40..1,169,340.56 rows=32,400 width=376) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=980,966.40..1,169,016.56 rows=32,400 width=376) (actual rows= loops=)

  • Group Key: b.rro_account_number, b.name, b.payment_date, b.gross_amount
  • Filter: ((sum((CASE WHEN ((u.status_ind)::text <> ALL ('{ELIGIBLE,LOCKED,NTS_WITHDRAWN}'::text[])) THEN count(1) ELSE '0'::bigint END)) <> '0'::numeric) OR (sum((CASE WHEN ((u.status_ind)::text = 'ELIGIBLE'::text) THEN count(1) ELSE '0'::bigint END)) <> '0'::numeric) OR (sum((CASE WHEN ((u.status_ind)::text = 'LOCKED'::text) THEN count(1) ELSE '0'::bigint END)) <> '0'::numeric))
6. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=980,966.40..1,149,738.56 rows=324,000 width=292) (actual rows= loops=)

  • Group Key: b.rro_account_number, b.name, b.payment_date, b.gross_amount, u.status_ind, u.product_family, u.payee_account_number
7. 0.000 0.000 ↓ 0.0

Sort (cost=980,966.40..988,825.99 rows=3,143,835 width=69) (actual rows= loops=)

  • Sort Key: b.rro_account_number, b.name, b.payment_date, b.gross_amount, u.status_ind, u.product_family, u.payee_account_number
8. 0.000 0.000 ↓ 0.0

Hash Join (cost=15.70..383,788.25 rows=3,143,835 width=69) (actual rows= loops=)

  • Hash Cond: ((u.df_usage_batch_uid)::text = (b.df_usage_batch_uid)::text)
9. 0.000 0.000 ↓ 0.0

Seq Scan on df_usage u (cost=0.00..339,496.87 rows=3,423,287 width=82) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash (cost=13.45..13.45 rows=180 width=61) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Seq Scan on df_usage_batch b (cost=0.00..13.45 rows=180 width=61) (actual rows= loops=)

  • Filter: ((product_family)::text = ANY ('{FAS,FAS2}'::text[]))
12. 0.000 0.000 ↓ 0.0

Hash (cost=4,752.35..4,752.35 rows=105,735 width=33) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on df_rightsholder rro (cost=0.00..4,752.35 rows=105,735 width=33) (actual rows= loops=)