explain.depesz.com

PostgreSQL's explain analyze made readable

Result: bMcF : month

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

Limit (cost=2,696.07..2,696.09 rows=1 width=561) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Unique (cost=2,696.07..2,696.09 rows=1 width=561) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Sort (cost=2,696.07..2,696.08 rows=1 width=561) (actual rows= loops=)

  • Sort Key: d1_.code, t2_.tour, t2_.round, p0_.id
4. 0.000 0.000 ↓ 0.0

Hash Semi Join (cost=324.45..2,696.06 rows=1 width=561) (actual rows= loops=)

  • Hash Cond: ((p0_.id)::text = (p19_.id)::text)
5. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=248.50..2,538.30 rows=31,165 width=561) (actual rows= loops=)

  • Hash Cond: ((p0_.id)::text = (u18_.planning_id)::text)
6. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=245.92..2,418.84 rows=31,165 width=561) (actual rows= loops=)

  • Hash Cond: ((p0_.id)::text = (p17_.planning_id)::text)
7. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=238.48..2,294.52 rows=31,165 width=561) (actual rows= loops=)

  • Hash Cond: ((p0_.tour_id)::text = (t2_.id)::text)
8. 0.000 0.000 ↓ 0.0

Seq Scan on planning p0_ (cost=0.00..1,510.65 rows=31,165 width=259) (actual rows= loops=)

  • Filter: (deleted_at IS NULL)
9. 0.000 0.000 ↓ 0.0

Hash (cost=182.37..182.37 rows=4,489 width=561) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1.36..182.37 rows=4,489 width=561) (actual rows= loops=)

  • Hash Cond: ((t2_.dairy_id)::text = (d1_.id)::text)
11. 0.000 0.000 ↓ 0.0

Seq Scan on tour t2_ (cost=0.00..162.89 rows=4,489 width=119) (actual rows= loops=)

  • Filter: (deleted_at IS NULL)
12. 0.000 0.000 ↓ 0.0

Hash (cost=1.35..1.35 rows=1 width=2,580) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on dairy d1_ (cost=0.00..1.35 rows=1 width=2,580) (actual rows= loops=)

  • Filter: (deleted_at IS NULL)
14. 0.000 0.000 ↓ 0.0

Hash (cost=7.43..7.43 rows=1 width=37) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Seq Scan on planning_unitary_demand p17_ (cost=0.00..7.43 rows=1 width=37) (actual rows= loops=)

  • Filter: (deleted_at IS NULL)
16. 0.000 0.000 ↓ 0.0

Hash (cost=2.57..2.57 rows=1 width=37) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Seq Scan on updates u18_ (cost=0.00..2.57 rows=1 width=37) (actual rows= loops=)

  • Filter: (deleted_at IS NULL)
18. 0.000 0.000 ↓ 0.0

Hash (cost=75.93..75.93 rows=1 width=37) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=4.80..75.93 rows=1 width=37) (actual rows= loops=)

  • Join Filter: ((p19_.id)::text = (u37_.planning_id)::text)
20. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=4.80..73.35 rows=1 width=37) (actual rows= loops=)

  • Join Filter: ((p19_.id)::text = (p36_.planning_id)::text)
21. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.80..65.91 rows=1 width=37) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.52..57.60 rows=1 width=74) (actual rows= loops=)

  • Join Filter: ((p19_.month_id)::text = (m20_.id)::text)
23. 0.000 0.000 ↓ 0.0

Seq Scan on month m20_ (cost=0.00..1.26 rows=1 width=516) (actual rows= loops=)

  • Filter: ((month)::text = '3-2019'::text)
24. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on planning p19_ (cost=4.52..56.16 rows=14 width=259) (actual rows= loops=)

  • Recheck Cond: ((tour_id)::text = '4600b30f-94d1-4269-ab26-e81ca6e58c1a'::text)
  • Filter: (deleted_at IS NULL)
25. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on idx_d499bff615ed8d43 (cost=0.00..4.52 rows=14 width=0) (actual rows= loops=)

  • Index Cond: ((tour_id)::text = '4600b30f-94d1-4269-ab26-e81ca6e58c1a'::text)
26. 0.000 0.000 ↓ 0.0

Index Scan using tour_pkey on tour t22_ (cost=0.28..8.30 rows=1 width=111) (actual rows= loops=)

  • Index Cond: ((id)::text = '4600b30f-94d1-4269-ab26-e81ca6e58c1a'::text)
  • Filter: (deleted_at IS NULL)
27. 0.000 0.000 ↓ 0.0

Seq Scan on planning_unitary_demand p36_ (cost=0.00..7.43 rows=1 width=37) (actual rows= loops=)

  • Filter: (deleted_at IS NULL)
28. 0.000 0.000 ↓ 0.0

Seq Scan on updates u37_ (cost=0.00..2.57 rows=1 width=37) (actual rows= loops=)

  • Filter: (deleted_at IS NULL)