explain.depesz.com

PostgreSQL's explain analyze made readable

Result: dBat

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

Unique (cost=2,598,466.18..2,598,466.24 rows=11 width=246) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=2,598,466.18..2,598,466.21 rows=11 width=246) (actual rows= loops=)

  • Sort Key: dv.device_guid
3. 0.000 0.000 ↓ 0.0

Gather (cost=1,564,183.74..2,598,465.99 rows=11 width=246) (actual rows= loops=)

  • Workers Planned: 2
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1,563,183.74..2,597,464.89 rows=5 width=246) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=1,563,183.19..2,597,424.66 rows=5 width=243) (actual rows= loops=)

  • Hash Cond: (((hrt.hm_house_guid)::text = (dv.hm_house_guid)::text) AND ((hrt.nsi_2_code)::text = (dmr.nsi_2_code)::text))
6. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on dim_house_resource_territories hrt (cost=0.00..988,113.58 rows=4,612,786 width=76) (actual rows= loops=)

  • Filter: (((is_mng = 1) OR (is_drso = 1)) AND ((nsi_2_code)::text = ANY ('{1,2,3,4,5,8}'::text[])))
7. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=1,563,183.12..1,563,183.12 rows=5 width=206) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1,460.48..1,563,183.12 rows=5 width=206) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1,460.48..1,563,136.48 rows=6 width=201) (actual rows= loops=)

  • Join Filter: ((dr.device_version_guid)::text = (dv.guid)::text)
10. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=1,459.92..1,454,588.82 rows=13,379 width=113) (actual rows= loops=)

  • Hash Cond: ((dmr.device_version_guid)::text = (dr.device_version_guid)::text)
11. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on hm_device_municipal_resources dmr (cost=0.00..1,328,339.14 rows=24,942,214 width=39) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=1,226.63..1,226.63 rows=18,663 width=74) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on hm_device_rooms dr (cost=0.00..1,226.63 rows=18,663 width=74) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Index Scan using pk_hm_device_versions_guid on hm_device_versions dv (cost=0.56..8.10 rows=1 width=199) (actual rows= loops=)

  • Index Cond: ((guid)::text = (dmr.device_version_guid)::text)
  • Filter: (entity_is_actual AND entity_is_actual AND ((device_status)::text <> 'ARCHIVE'::text) AND ((device_status)::text <> 'ARCHIVE'::text) AND ((nsi_27_code)::text = '4'::text))
15. 0.000 0.000 ↓ 0.0

Index Scan using idx_hm_apartments_guid_actual_hash on hm_apartments ap (cost=0.00..7.77 rows=1 width=42) (actual rows= loops=)

  • Index Cond: ((guid)::text = (dv.apartment_guid)::text)
16. 0.000 0.000 ↓ 0.0

Index Scan using pk_hm_rooms_guid on hm_rooms rm (cost=0.55..8.05 rows=1 width=40) (actual rows= loops=)

  • Index Cond: ((guid)::text = (dr.room_guid)::text)
  • Filter: entity_is_actual