explain.depesz.com

PostgreSQL's explain analyze made readable

Result: c4Tj

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

GroupAggregate (cost=401,516.99..401,813.96 rows=8,485 width=223) (actual rows= loops=)

  • Group Key: cdmast_temp.acctno, tp.term_period_id, co.customer_object_id
2. 0.000 0.000 ↓ 0.0

Sort (cost=401,516.99..401,538.20 rows=8,485 width=53) (actual rows= loops=)

  • Sort Key: cdmast_temp.acctno, tp.term_period_id, co.customer_object_id
3. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=123.52..400,963.31 rows=8,485 width=53) (actual rows= loops=)

  • Hash Cond: (((cdmast_temp.curtyp)::text = (mob_brn.uom_id)::text) AND ((tp.term_period_id)::text = (mob_brn.term_period_id)::text) AND ((co.cus
  • Join Filter: ((mob_brn.effective_from_date <= to_date(to_char(CASE WHEN (cdmast_temp.rendt > '999999'::numeric) THEN cdmast_temp.rendt ELSE cdm
4. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=64.05..398,697.71 rows=8,485 width=62) (actual rows= loops=)

  • Hash Cond: (((cdmast_temp.curtyp)::text = (mob.uom_id)::text) AND ((tp.term_period_id)::text = (mob.term_period_id)::text) AND ((co.custo
  • Join Filter: ((mob.effective_from_date <= to_date(to_char(CASE WHEN (cdmast_temp.rendt > '999999'::numeric) THEN cdmast_temp.rendt ELSE c
5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=7.21..396,535.34 rows=8,485 width=51) (actual rows= loops=)

  • Join Filter: ((tpr.term_period_id)::text = (tp.term_period_id)::text)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=7.21..393,723.42 rows=8,485 width=47) (actual rows= loops=)

  • Join Filter: ((co.customer_object_code)::text = (c.customer_object_id)::text)
7. 0.000 0.000 ↓ 0.0

Hash Join (cost=6.78..234,305.07 rows=42,458 width=53) (actual rows= loops=)

  • Hash Cond: ((co.customer_object_id)::text = (tpr.customer_object_id)::text)
  • Join Filter: ((cdmast_temp.range_date >= tpr.from_number_day) AND (cdmast_temp.range_date <= tpr.to_number_day) AND (tp
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..109,089.85 rows=154,913 width=51) (actual rows= loops=)

  • Join Filter: ((co.from_date <= to_date(to_char(CASE WHEN (cdmast_temp.rendt > '999999'::numeric) THEN cdmast_temp
9. 0.000 0.000 ↓ 0.0

Seq Scan on cdmast_temp (cost=0.00..63,776.63 rows=348,555 width=40) (actual rows= loops=)

  • Filter: (term_tcod IS NULL)
10. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.08 rows=4 width=27) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Seq Scan on customer_object co (cost=0.00..1.06 rows=4 width=27) (actual rows= loops=)

  • Filter: ((status_id)::text = 'PARAM_APPROVED'::text)
12. 0.000 0.000 ↓ 0.0

Hash (cost=5.39..5.39 rows=111 width=28) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on term_period_range tpr (cost=0.00..5.39 rows=111 width=28) (actual rows= loops=)

  • Filter: ((status_id)::text = 'PARAM_APPROVED'::text)
14. 0.000 0.000 ↓ 0.0

Index Scan using idxcustomercif on customer c (cost=0.43..3.74 rows=1 width=10) (actual rows= loops=)

  • Index Cond: (cif = cdmast_temp.cifno)
15. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.34 rows=23 width=10) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Seq Scan on term_period tp (cost=0.00..1.23 rows=23 width=10) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=38.45..38.45 rows=1,051 width=35) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Seq Scan on mobilize_interest_rate mob (cost=0.00..38.45 rows=1,051 width=35) (actual rows= loops=)

  • Filter: ((branch_brcode IS NULL) AND ((status_id)::text = 'PARAM_APPROVED'::text))
19. 0.000 0.000 ↓ 0.0

Hash (cost=38.45..38.45 rows=1,051 width=47) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Seq Scan on mobilize_interest_rate mob_brn (cost=0.00..38.45 rows=1,051 width=47) (actual rows= loops=)

  • Filter: ((status_id)::text = 'PARAM_APPROVED'::text)