explain.depesz.com

PostgreSQL's explain analyze made readable

Result: JqXn

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

Result (cost=33,133.07..33,133.38 rows=1 width=166) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=33,133.07..33,133.07 rows=1 width=162) (actual rows= loops=)

  • Sort Key: jk.gnr, jk.bnr, jk.fnr, jk.teig_nr
3. 0.000 0.000 ↓ 0.0

Nested Loop Anti Join (cost=116.69..33,133.06 rows=1 width=162) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=114.13..230.35 rows=1 width=110) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Hash Join (cost=113.86..229.56 rows=1 width=104) (actual rows= loops=)

  • Hash Cond: ((jk.municipality_nr = f.municipality_nr) AND (jk.gnr = f.gnr) AND (jk.bnr = f.bnr) AND (jk.fnr = f.fnr))
6. 0.000 0.000 ↓ 0.0

Seq Scan on sl_lop_temp_jordreg_rep4_ar5_areal jk (cost=0.00..74.88 rows=3,888 width=102) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Hash (cost=113.84..113.84 rows=1 width=10) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Subquery Scan on f (cost=113.77..113.84 rows=1 width=10) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=113.77..113.83 rows=1 width=54) (actual rows= loops=)

  • Group Key: jk_1.municipality_nr, jk_1.gnr, jk_1.bnr, jk_1.fnr
  • Filter: ((((sum(jk_1.t1) + sum(jk_1.t2)) + sum(jk_1.t3)) > '5'::double precision) OR (((sum((jk_1.t4 + jk_1.t5)) + sum(jk_1.t6)) + sum(jk_1.t7)) > '25'::double precision))
10. 0.000 0.000 ↓ 0.0

Sort (cost=113.77..113.78 rows=1 width=38) (actual rows= loops=)

  • Sort Key: jk_1.gnr, jk_1.bnr, jk_1.fnr
11. 0.000 0.000 ↓ 0.0

Seq Scan on sl_lop_temp_jordreg_rep4_ar5_areal jk_1 (cost=0.00..113.76 rows=1 width=38) (actual rows= loops=)

  • Filter: ((farm_gnr IS NULL) AND ((ownership)::text = ANY ('{M,F}'::text[])) AND (gnr <> 0) AND (bnr <> 0) AND (municipality_nr = 2004))
12. 0.000 0.000 ↓ 0.0

Index Scan using kode_felles_kommune_unique_komid on felles_kommune fk (cost=0.27..0.79 rows=1 width=12) (actual rows= loops=)

  • Index Cond: (komid = jk.municipality_nr)
13. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.56..32,902.65 rows=1 width=8) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.14..32,900.88 rows=1 width=18) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.72..32,852.83 rows=1 width=14) (actual rows= loops=)

  • Join Filter: ((pp.parcel_id)::text = (pp2.parcel_id)::text)
16. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.29..32,851.30 rows=1 width=27) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.86..32,848.65 rows=1 width=22) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Index Scan using property_municipality_nr_gnr_bnr_fnr_key on property p2 (cost=0.43..32,797.75 rows=1 width=10) (actual rows= loops=)

  • Index Cond: ((jk.gnr = gnr) AND (jk.bnr = bnr))
19. 0.000 0.000 ↓ 0.0

Index Scan using property_municipality_nr_gnr_bnr_fnr_key on property p (cost=0.43..50.87 rows=3 width=12) (actual rows= loops=)

  • Index Cond: ((municipality_nr = 2004) AND (jk.fnr = fnr))
20. 0.000 0.000 ↓ 0.0

Index Scan using idx_org_property_property_parcel_property_ref on property_parcel pp (cost=0.43..2.60 rows=4 width=13) (actual rows= loops=)

  • Index Cond: (property_ref = p.id)
21. 0.000 0.000 ↓ 0.0

Index Scan using idx_org_property_property_parcel_property_ref on property_parcel pp2 (cost=0.43..1.48 rows=4 width=13) (actual rows= loops=)

  • Index Cond: (property_ref = p2.id)
22. 0.000 0.000 ↓ 0.0

Index Scan using uidx_org_property_property_group_municipality_nr_name on property_group pg (cost=0.42..47.39 rows=66 width=4) (actual rows= loops=)

  • Index Cond: (municipality_nr = 2004)
23. 0.000 0.000 ↓ 0.0

Index Only Scan using idx_org_property_property_group_property_sub on property_group_property pgp (cost=0.42..1.77 rows=1 width=12) (actual rows= loops=)

  • Index Cond: ((property_group_ref = pg.id) AND (gnr = p.gnr) AND (bnr = p.bnr) AND (fnr = p.fnr))