explain.depesz.com

PostgreSQL's explain analyze made readable

Result: NOzP

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

Nested Loop Left Join (cost=17,899.51..560,437.58 rows=7 width=620) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=17,899.23..560,434.49 rows=7 width=403) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=17,898.95..560,432.33 rows=7 width=387) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=17,898.80..560,431.13 rows=7 width=383) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=17,898.37..560,427.18 rows=7 width=356) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=17,897.94..560,423.18 rows=7 width=352) (actual rows= loops=)

  • Join Filter: ((vs.deal_cd)::text = (d.deal_cd)::text)
  • Filter: (((COALESCE(vs.deal_cd, sb.deal_cd) IS NOT NULL) AND (d.deal_cd IS NOT NULL)) OR (COALESCE(vs.deal_cd, sb.deal_cd) IS NULL))
7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15,552.51..554,836.88 rows=7 width=353) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Hash Join (cost=15,552.07..554,832.49 rows=7 width=180) (actual rows= loops=)

  • Hash Cond: (((s.bias_entry_date)::text = (sb.bias_entry_date)::text) AND (s.bias_number = sb.bias_number) AND ((s.network_cd)::text = (sb.network_cd)::text))
9. 0.000 0.000 ↓ 0.0

Seq Scan on spot s (cost=0.00..306,880.87 rows=7,422,087 width=50) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash (cost=8,548.39..8,548.39 rows=175,239 width=158) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Seq Scan on booked_order sb (cost=0.00..8,548.39 rows=175,239 width=158) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Index Scan using idx_lh_vwspot_spotid on vw_spot vs (cost=0.43..0.62 rows=1 width=173) (actual rows= loops=)

  • Index Cond: (spot_id = s.spot_id)
13. 0.000 0.000 ↓ 0.0

Materialize (cost=2,345.43..3,546.76 rows=19,898 width=23) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,345.43..3,447.27 rows=19,898 width=23) (actual rows= loops=)

  • Hash Cond: ((d.deal_cd)::text = (ldp.deal_cd)::text)
15. 0.000 0.000 ↓ 0.0

Hash Join (cost=1,529.70..2,357.94 rows=19,898 width=33) (actual rows= loops=)

  • Hash Cond: ((d.deal_cd)::text = (dd.source_deal_id)::text)
16. 0.000 0.000 ↓ 0.0

Seq Scan on deal d (cost=0.00..775.99 rows=19,899 width=21) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=1,280.98..1,280.98 rows=19,898 width=12) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Seq Scan on dim_deal dd (cost=0.00..1,280.98 rows=19,898 width=12) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Hash (cost=566.99..566.99 rows=19,899 width=14) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Seq Scan on deal_properties ldp (cost=0.00..566.99 rows=19,899 width=14) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Index Scan using idx_lh_bs_bookedspotid on booked_spot bs (cost=0.43..0.56 rows=1 width=12) (actual rows= loops=)

  • Index Cond: (vs.booked_spot_id = booked_spot_id)
22. 0.000 0.000 ↓ 0.0

Index Scan using idx_lh_air_airedspotid on aired_spot air (cost=0.43..0.55 rows=1 width=35) (actual rows= loops=)

  • Index Cond: (vs.aired_spot_id = aired_spot_id)
23. 0.000 0.000 ↓ 0.0

Index Scan using idx_bias_number on change_log_entries cl (cost=0.14..0.16 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (s.bias_number = bias_number)
24. 0.000 0.000 ↓ 0.0

Index Scan using idx_lh_adj_spot_id on lighthouse_adjustment la (cost=0.28..0.30 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (s.spot_id = spot_id)
25. 0.000 0.000 ↓ 0.0

Index Scan using idx_adj_com_spot_id on adjustment_comment ac (cost=0.28..0.30 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (s.spot_id = spot_id)