explain.depesz.com

PostgreSQL's explain analyze made readable

Result: QYeu

Settings
# exclusive inclusive rows x rows loops node
1. 0.542 39.359 ↓ 25.0 25 1

Limit (cost=65.61..65.61 rows=1 width=2,149) (actual time=38.715..39.359 rows=25 loops=1)

2. 0.999 38.817 ↓ 25.0 25 1

Sort (cost=65.61..65.61 rows=1 width=2,149) (actual time=38.704..38.817 rows=25 loops=1)

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

Nested Loop (cost=34.59..65.60 rows=1 width=2,149) (actual time=19.616..37.818 rows=96 loops=1)

4. 1.492 34.140 ↓ 96.0 96 1

Nested Loop (cost=34.45..65.27 rows=1 width=2,181) (actual time=19.572..34.140 rows=96 loops=1)

5. 1.561 31.880 ↓ 96.0 96 1

Nested Loop (cost=34.18..60.44 rows=1 width=986) (actual time=19.535..31.880 rows=96 loops=1)

6. 2.597 29.551 ↓ 96.0 96 1

Nested Loop (cost=34.03..59.32 rows=1 width=1,002) (actual time=19.486..29.551 rows=96 loops=1)

7. 2.941 25.418 ↓ 3.0 192 1

Nested Loop (cost=33.89..45.06 rows=64 width=1,018) (actual time=19.385..25.418 rows=192 loops=1)

8. 0.968 20.653 ↓ 12.0 96 1

Hash Join (cost=33.74..39.49 rows=8 width=1,018) (actual time=19.333..20.653 rows=96 loops=1)

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

Seq Scan on user_unit_photos (cost=0.00..5.61 rows=16 width=32) (actual time=0.603..1.001 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.860 18.684 ↓ 1.9 96 1

Hash (cost=33.11..33.11 rows=50 width=986) (actual time=18.675..18.684 rows=96 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 67kB
11. 1.287 17.824 ↓ 1.9 96 1

Hash Join (cost=28.39..33.11 rows=50 width=986) (actual time=9.005..17.824 rows=96 loops=1)

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

Hash Join (cost=26.24..30.82 rows=50 width=986) (actual time=7.581..15.134 rows=96 loops=1)

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

Hash Join (cost=13.76..18.22 rows=50 width=282) (actual time=6.774..13.037 rows=96 loops=1)

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

Hash Join (cost=11.62..15.93 rows=50 width=282) (actual time=5.354..10.523 rows=96 loops=1)

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

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

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

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

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

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

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

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

19. 0.403 1.091 ↓ 1.1 56 1

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

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

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

21. 0.392 1.068 ↑ 1.8 55 1

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

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

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

  • Filter: ((removed_from_feed_at IS NULL) AND (move_date >= '2020-06-01'::date) AND ((user_id <> '68d35277-031c-430a-b4eb-b95e5fab38e5'::uuid) OR (property_manager_id IS NOT NULL)) AND (price < 110000))
  • Rows Removed by Filter: 1
23. 0.407 1.157 ↓ 1.2 59 1

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

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

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

25. 0.396 1.418 ↓ 1.1 58 1

Hash (cost=1.64..1.64 rows=51 width=50) (actual time=1.410..1.418 rows=58 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 13kB
26. 1.022 1.022 ↓ 1.1 58 1

Seq Scan on units (cost=0.00..1.64 rows=51 width=50) (actual time=0.572..1.022 rows=58 loops=1)

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

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

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

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

29. 0.121 0.782 ↑ 6.9 16 1

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

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

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

31. 0.559 1.403 ↓ 1.1 58 1

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

  • Buckets: 1,024 Batches: 1 Memory Usage: 12kB
32. 0.844 0.844 ↓ 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.487..0.844 rows=58 loops=1)

33. 1.824 1.824 ↑ 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.008..0.019 rows=2 loops=96)

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

Index Scan using areas_pkey on areas (cost=0.15..0.22 rows=1 width=16) (actual time=0.008..0.008 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.768 0.768 ↑ 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.008..0.008 rows=1 loops=96)

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

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

  • Index Cond: (id = user_unit_photos.photo_id)
37. 1.728 1.728 ↑ 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.009..0.018 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