explain.depesz.com

PostgreSQL's explain analyze made readable

Result: fCqs

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

Limit (cost=0.99..2,009.04 rows=20 width=2,557) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.99..9,505,612.13 rows=94,675 width=2,557) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.57..1,104,554.32 rows=94,675 width=1,881) (actual rows= loops=)

  • Join Filter: (decoration_type.id = flat.decoration_type_id)
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.57..1,071,776.60 rows=94,675 width=1,762) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1,056,623.49 rows=94,675 width=1,742) (actual rows= loops=)

  • Join Filter: (flat_type.id = flat.type_id)
6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1053985.12 rows=94675 width=Limit (cost=0.85..2,921.09 rows=20 width=2,557) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.85..3,455,966.90 rows=23,669 width=2,557) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1,091,165.47 rows=23,669 width=1,881) (actual rows= loops=)

  • Join Filter: (decoration_type.id = flat.decoration_type_id)
9. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1,082,969.89 rows=23,669 width=1,762) (actual rows= loops=)

  • Join Filter: (balcony_type.id = flat.balcony_type_id)
10. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1,054,398.70 rows=23,669 width=1,742) (actual rows= loops=)

  • Join Filter: (flat_type.id = flat.type_id)
11. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1,053,738.34 rows=23,669 width=1,424) (actual rows= loops=)

  • Join Filter: (status.id = flat.deal_status_id)
12. 0.000 0.000 ↓ 0.0

Index Scan using flat_price_index on flat (cost=0.42..1,052,045.45 rows=23,669 width=1,106) (actual rows= loops=)

  • Filter: (actual AND (address_hierarchy_ids ~@| '{3898b397-1d48-4c4b-b029-82e5187dbbdc,c1bec616-d4e9-46d9-a3a8-b6cd6c9ab903,c308ca5a-aa14-4bb2-a9ab-b5741cbdc712}'::text[]) AND (address_hierarchy_ids ~@ '3898b397-1d48-4c4b-b029-82e5187dbbdc'::text) AND (category_type = 1))
13. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.07 rows=5 width=334) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Seq Scan on status (cost=0.00..1.05 rows=5 width=334) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.03 rows=2 width=334) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Seq Scan on flat_type (cost=0.00..1.02 rows=2 width=334) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..3.21 rows=81 width=36) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Seq Scan on balcony_type (cost=0.00..2.81 rows=81 width=36) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.36 rows=24 width=135) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Seq Scan on decoration_type (cost=0.00..1.24 rows=24 width=135) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Index Scan using semantic_url_new_flat_type_idx on semantic_url_new (cost=0.42..53.86 rows=2,000 width=1,514) (actual rows= loops=)

  • Index Cond: (flat.id = (split_part((request_url)::text, 'flats/'::text, 2))::uuid)
22. 0.000 0.000 ↓ 0.0

Index Scan using semantic_url_new_flat_type_idx on semantic_url_new (cost=0.42..41.72 rows=2,097 width=1,511) (actual rows= loops=)

  • Index Cond: (flat.id = (split_part((request_url)::text, 'flats/'::text, 2))::uuid)
23.          

SubPlan (for Nested Loop Left Join)

24. 0.000 0.000 ↓ 0.0

Index Scan using building_id_idx on building (cost=0.29..8.30 rows=1 width=13) (actual rows= loops=)

  • Index Cond: (id = flat.building_id)
25. 0.000 0.000 ↓ 0.0

Index Scan using document_advantage_id_idx on document_advantage (cost=0.42..8.44 rows=1 width=745) (actual rows= loops=)

  • Index Cond: (id = flat.document_advantage_id)
26. 0.000 0.000 ↓ 0.0

Index Scan using building_id_idx on building b (cost=0.29..8.55 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = flat.building_id)1424)
  • Join Filter: (status.id = flat.deal_status_id)
27. 0.000 0.000 ↓ 0.0

Index Scan using flat_price_index on flat (cost=0.42..1,047,216.83 rows=94,675 width=1,106) (actual rows= loops=)

  • Filter: (actual AND (category_type = 1))
28. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.07 rows=5 width=334) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Seq Scan on status (cost=0.00..1.05 rows=5 width=334) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.03 rows=2 width=334) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Seq Scan on flat_type (cost=0.00..1.02 rows=2 width=334) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Index Scan using balcony_type_id_idx on balcony_type (cost=0.14..0.16 rows=1 width=36) (actual rows= loops=)

  • Index Cond: (id = flat.balcony_type_id)
33. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.36 rows=24 width=135) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Seq Scan on decoration_type (cost=0.00..1.24 rows=24 width=135) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Index Scan using building_id_idx on building (cost=0.29..8.30 rows=1 width=13) (actual rows= loops=)

  • Index Cond: (id = flat.building_id)
36. 0.000 0.000 ↓ 0.0

Index Scan using document_advantage_id_idx on document_advantage (cost=0.42..8.44 rows=1 width=745) (actual rows= loops=)

  • Index Cond: (id = flat.document_advantage_id)
37. 0.000 0.000 ↓ 0.0

Index Scan using building_id_idx on building b (cost=0.29..8.55 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = flat.building_id)