explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Phi9 : joins

Settings
# exclusive inclusive rows x rows loops node
1. 0.552 33.926 ↓ 25.0 25 1

Limit (cost=65.61..65.61 rows=1 width=2,455) (actual time=33.297..33.926 rows=25 loops=1)

2. 0.860 33.374 ↓ 25.0 25 1

Sort (cost=65.61..65.61 rows=1 width=2,455) (actual time=33.261..33.374 rows=25 loops=1)

  • Sort Key: user_units.move_date
  • Sort Method: top-N heapsort Memory: 105kB
3. 1.900 32.514 ↓ 96.0 96 1

Nested Loop (cost=34.59..65.60 rows=1 width=2,455) (actual time=16.205..32.514 rows=96 loops=1)

4. 1.423 29.366 ↓ 96.0 96 1

Nested Loop (cost=34.45..65.27 rows=1 width=2,487) (actual time=16.170..29.366 rows=96 loops=1)

5. 1.491 27.271 ↓ 96.0 96 1

Nested Loop (cost=34.18..60.44 rows=1 width=1,292) (actual time=16.129..27.271 rows=96 loops=1)

6. 2.304 25.204 ↓ 96.0 96 1

Nested Loop (cost=34.03..59.32 rows=1 width=1,308) (actual time=16.083..25.204 rows=96 loops=1)

7. 2.819 21.556 ↓ 3.0 192 1

Nested Loop (cost=33.89..45.06 rows=64 width=1,324) (actual time=16.057..21.556 rows=192 loops=1)

8. 0.881 17.201 ↓ 12.0 96 1

Hash Join (cost=33.74..39.49 rows=8 width=1,324) (actual time=16.017..17.201 rows=96 loops=1)

  • Hash Cond: (user_unit_photos.user_unit_id = user_unit_transitions.user_unit_id)
9. 0.871 0.871 ↓ 3.4 54 1

Seq Scan on user_unit_photos (cost=0.00..5.61 rows=16 width=32) (actual time=0.536..0.871 rows=54 loops=1)

  • Filter: (primary_photo AND (deleted_at IS NULL) AND primary_photo AND (deleted_at IS NULL))
  • Rows Removed by Filter: 153
10. 0.658 15.449 ↓ 1.9 96 1

Hash (cost=33.11..33.11 rows=50 width=1,292) (actual time=15.441..15.449 rows=96 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 73kB
11. 0.936 14.791 ↓ 1.9 96 1

Hash Join (cost=28.39..33.11 rows=50 width=1,292) (actual time=7.597..14.791 rows=96 loops=1)

  • Hash Cond: (units_user_units_join.property_place_id = property_places_user_units_join.id)
12. 1.101 11.877 ↓ 1.9 96 1

Hash Join (cost=26.24..30.82 rows=50 width=1,292) (actual time=5.596..11.877 rows=96 loops=1)

  • Hash Cond: (property_places.place_id = places.id)
13. 0.965 10.284 ↓ 1.9 96 1

Hash Join (cost=13.76..18.22 rows=50 width=588) (actual time=5.082..10.284 rows=96 loops=1)

  • Hash Cond: (units.property_place_id = property_places.id)
14. 0.943 8.322 ↓ 1.9 96 1

Hash Join (cost=11.62..15.93 rows=50 width=572) (actual time=4.067..8.322 rows=96 loops=1)

  • Hash Cond: (user_units.unit_id = units.id)
15. 0.924 6.500 ↓ 1.9 96 1

Hash Join (cost=9.34..13.52 rows=50 width=264) (actual time=3.163..6.500 rows=96 loops=1)

  • Hash Cond: (user_units.unit_id = units_user_units_join.id)
16. 1.043 4.595 ↓ 1.9 96 1

Hash Join (cost=7.20..11.24 rows=50 width=232) (actual time=2.165..4.595 rows=96 loops=1)

  • Hash Cond: (user_unit_transitions.user_unit_id = user_units.id)
17. 1.002 2.627 ↓ 1.9 97 1

Hash Join (cost=2.15..6.06 rows=51 width=90) (actual time=1.199..2.627 rows=97 loops=1)

  • Hash Cond: (user_unit_transitions.user_unit_id = unit_ratings.user_unit_id)
18. 0.805 0.805 ↑ 1.1 97 1

Seq Scan on user_unit_transitions (cost=0.00..3.02 rows=102 width=30) (actual time=0.361..0.805 rows=97 loops=1)

19. 0.284 0.820 ↓ 1.1 56 1

Hash (cost=1.51..1.51 rows=51 width=60) (actual time=0.812..0.820 rows=56 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 14kB
20. 0.536 0.536 ↓ 1.1 56 1

Seq Scan on unit_ratings (cost=0.00..1.51 rows=51 width=60) (actual time=0.277..0.536 rows=56 loops=1)

21. 0.314 0.925 ↑ 1.8 55 1

Hash (cost=3.79..3.79 rows=101 width=142) (actual time=0.916..0.925 rows=55 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 17kB
22. 0.611 0.611 ↑ 1.8 55 1

Seq Scan on user_units (cost=0.00..3.79 rows=101 width=142) (actual time=0.320..0.611 rows=55 loops=1)

  • Filter: ((removed_from_feed_at IS NULL) AND (move_date >= '2020-05-27'::date) AND ((user_id <> '07c0baf0-293b-4979-ac65-077d208431cf'::uuid) OR (property_manager_id IS NOT NULL)) AND (price < 110000))
  • Rows Removed by Filter: 1
23. 0.303 0.981 ↓ 1.2 59 1

Hash (cost=1.51..1.51 rows=51 width=32) (actual time=0.973..0.981 rows=59 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 12kB
24. 0.678 0.678 ↓ 1.2 59 1

Seq Scan on units units_user_units_join (cost=0.00..1.51 rows=51 width=32) (actual time=0.389..0.678 rows=59 loops=1)

25. 0.290 0.879 ↓ 1.1 58 1

Hash (cost=1.64..1.64 rows=51 width=324) (actual time=0.871..0.879 rows=58 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 15kB
26. 0.589 0.589 ↓ 1.1 58 1

Seq Scan on units (cost=0.00..1.64 rows=51 width=324) (actual time=0.306..0.589 rows=58 loops=1)

  • Filter: (bedrooms >= 0)
  • Rows Removed by Filter: 1
27. 0.289 0.997 ↓ 1.1 58 1

Hash (cost=1.51..1.51 rows=51 width=32) (actual time=0.989..0.997 rows=58 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 12kB
28. 0.708 0.708 ↓ 1.1 58 1

Seq Scan on property_places (cost=0.00..1.51 rows=51 width=32) (actual time=0.431..0.708 rows=58 loops=1)

29. 0.102 0.492 ↑ 6.9 16 1

Hash (cost=11.10..11.10 rows=110 width=704) (actual time=0.484..0.492 rows=16 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 14kB
30. 0.390 0.390 ↑ 6.9 16 1

Seq Scan on places (cost=0.00..11.10 rows=110 width=704) (actual time=0.307..0.390 rows=16 loops=1)

31. 0.328 1.978 ↓ 1.1 58 1

Hash (cost=1.51..1.51 rows=51 width=32) (actual time=1.970..1.978 rows=58 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 12kB
32. 1.650 1.650 ↓ 1.1 58 1

Seq Scan on property_places property_places_user_units_join (cost=0.00..1.51 rows=51 width=32) (actual time=0.314..1.650 rows=58 loops=1)

33. 1.536 1.536 ↑ 2.0 2 96

Index Scan using index_area_places_on_place_id on area_places (cost=0.15..0.66 rows=4 width=32) (actual time=0.006..0.016 rows=2 loops=96)

  • Index Cond: (place_id = places.id)
34. 1.344 1.344 ↓ 0.0 0 192

Index Scan using areas_pkey on areas (cost=0.15..0.22 rows=1 width=16) (actual time=0.007..0.007 rows=0 loops=192)

  • Index Cond: (id = area_places.area_id)
  • Filter: ((slug)::text = 'los-angeles-ca'::text)
  • Rows Removed by Filter: 0
35. 0.576 0.576 ↑ 1.0 1 96

Index Only Scan using places_pkey on places places_user_units (cost=0.14..1.10 rows=1 width=16) (actual time=0.006..0.006 rows=1 loops=96)

  • Index Cond: (id = property_places_user_units_join.place_id)
  • Heap Fetches: 96
36. 0.672 0.672 ↑ 1.0 1 96

Index Scan using photos_pkey on photos (cost=0.27..4.79 rows=1 width=1,211) (actual time=0.007..0.007 rows=1 loops=96)

  • Index Cond: (id = user_unit_photos.photo_id)
37. 1.248 1.248 ↑ 1.0 1 96

Index Scan using index_user_unit_transitions_on_user_unit_id on user_unit_transitions most_recent_user_unit_transition (cost=0.14..0.32 rows=1 width=16) (actual time=0.007..0.013 rows=1 loops=96)

  • Index Cond: (user_unit_id = user_unit_transitions.user_unit_id)
  • Filter: (most_recent AND (to_state IS NOT NULL) AND ((to_state)::text = ANY ('{pocketlisting,given_notice,on_market}'::text[])))
  • Rows Removed by Filter: 4