explain.depesz.com

PostgreSQL's explain analyze made readable

Result: bAmg

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

Unique (cost=435,491.58..435,491.64 rows=1 width=220) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, bel.bpl_identif, bel.naam_zakelijk_gerechtigde, q.grootte_perceel, (st_x(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992))), (st_y(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992))), z.ar_teller, z.ar_noemer, z.fk_3avr_aand, avr.omschr_aard_verkregenr_recht, h.fk_sc_rh_koz_kad_identif, h.aard, arch.gemeentecode, arch.perceelnummer, arch.deelperceelnummer, arch.sectie, arch.appartementsindex
2. 0.000 0.000 ↓ 0.0

Sort (cost=435,491.58..435,491.58 rows=1 width=220) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, bel.bpl_identif, bel.naam_zakelijk_gerechtigde, q.grootte_perceel, (st_x(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992))), (st_y(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992))), z.ar_teller, z.ar_noemer, z.fk_3avr_aand, avr.omschr_aard_verkregenr_recht, h.fk_sc_rh_koz_kad_identif, h.aard, arch.gemeentecode, arch.perceelnummer, arch.deelperceelnummer, arch.sectie, arch.appartementsindex
  • Sort Key: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, bel.bpl_identif, bel.naam_zakelijk_gerechtigde, q.grootte_perceel, (st_x(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992))), (st_y(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992))), z.ar_teller, z.ar_noemer, z.fk_3avr_aand, avr.omschr_aard_verkregenr_recht, h.fk_sc_rh_koz_kad_identif, h.aard, arch.gemeentecode, arch.perceelnummer, arch.deelperceelnummer, arch.sectie, arch.appartementsindex
3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=20,111.53..435,491.57 rows=1 width=220) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, bel.bpl_identif, bel.naam_zakelijk_gerechtigde, q.grootte_perceel, st_x(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992)), st_y(st_transform(st_setsrid(st_makepoint(q.lon, q.lat), 4326), 28992)), z.ar_teller, z.ar_noemer, z.fk_3avr_aand, avr.omschr_aard_verkregenr_recht, h.fk_sc_rh_koz_kad_identif, h.aard, arch.gemeentecode, arch.perceelnummer, arch.deelperceelnummer, arch.sectie, arch.appartementsindex
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=20,111.10..435,473.75 rows=1 width=179) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, q.grootte_perceel, q.lon, q.lat, z.ar_teller, z.ar_noemer, z.fk_3avr_aand, avr.omschr_aard_verkregenr_recht, h.fk_sc_rh_koz_kad_identif, h.aard, arch.gemeentecode, arch.perceelnummer, arch.deelperceelnummer, arch.sectie, arch.appartementsindex
5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=20,110.68..435,471.99 rows=1 width=145) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, q.grootte_perceel, q.lon, q.lat, z.ar_teller, z.ar_noemer, z.fk_3avr_aand, avr.omschr_aard_verkregenr_recht, h.fk_sc_rh_koz_kad_identif, h.aard
6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=20,110.25..435,467.37 rows=1 width=122) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, q.grootte_perceel, q.lon, q.lat, z.ar_teller, z.ar_noemer, z.fk_3avr_aand, avr.omschr_aard_verkregenr_recht
7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=20,110.11..435,467.20 rows=1 width=88) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, q.grootte_perceel, q.lon, q.lat, z.ar_teller, z.ar_noemer, z.fk_3avr_aand
8. 0.000 0.000 ↓ 0.0

Hash Anti Join (cost=20,109.68..435,443.96 rows=1 width=76) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, q.grootte_perceel, q.lon, q.lat
  • Hash Cond: (q.aanduiding2 = (belastingplichtige.aanduiding2)::text)
9. 0.000 0.000 ↓ 0.0

Seq Scan on public.mb_kad_onrrnd_zk_adres q (cost=0.00..412,090.24 rows=23,476 width=90) (actual rows= loops=)

  • Output: q.koz_identif, q.begin_geldigheid, q.gemeentecode, q.perceelnummer, q.deelperceelnummer, q.sectie, q.appartementsindex, q.grootte_perceel, q.lon, q.lat, q.aanduiding2
  • Filter: ('[2019-01-01,2019-07-09)'::daterange @> (q.begin_geldigheid)::date)
10. 0.000 0.000 ↓ 0.0

Hash (cost=11,324.08..11,324.08 rows=505,408 width=14) (actual rows= loops=)

  • Output: belastingplichtige.aanduiding2
11. 0.000 0.000 ↓ 0.0

Seq Scan on tax.belastingplichtige (cost=0.00..11,324.08 rows=505,408 width=14) (actual rows= loops=)

  • Output: belastingplichtige.aanduiding2
12. 0.000 0.000 ↓ 0.0

Index Scan using zak_recht_fk_kad_identif_idx on public.zak_recht z (cost=0.43..23.17 rows=7 width=21) (actual rows= loops=)

  • Output: z.kadaster_identif, z.eindd_recht, z.indic_betrokken_in_splitsing, z.ingangsdatum_recht, z.fk_7koz_kad_identif, z.fk_8pes_sc_identif, z.ar_noemer, z.ar_teller, z.fk_2aard_recht_verkort_aand, z.fk_3avr_aand
  • Index Cond: (z.fk_7koz_kad_identif = q.koz_identif)
  • Filter: ((z.fk_8pes_sc_identif IS NOT NULL) AND ((z.fk_3avr_aand)::text = ANY ('{2,4,3,12}'::text[])))
13. 0.000 0.000 ↓ 0.0

Index Scan using aard_verkregen_recht_pk on public.aard_verkregen_recht avr (cost=0.14..0.16 rows=1 width=36) (actual rows= loops=)

  • Output: avr.aand, avr.omschr_aard_verkregenr_recht
  • Index Cond: ((z.fk_3avr_aand)::text = (avr.aand)::text)
14. 0.000 0.000 ↓ 0.0

Index Scan using kad_onrrnd_zk_his_rel_pk on public.kad_onrrnd_zk_his_rel h (cost=0.43..4.61 rows=2 width=31) (actual rows= loops=)

  • Output: h.fk_sc_lh_koz_kad_identif, h.fk_sc_rh_koz_kad_identif, h.aard, h.overgangsgrootte
  • Index Cond: (q.koz_identif = h.fk_sc_lh_koz_kad_identif)
15. 0.000 0.000 ↓ 0.0

Index Scan using mb_kad_onrrnd_zk_archief_identif on public.mb_kad_onrrnd_zk_archief arch (cost=0.42..1.75 rows=1 width=43) (actual rows= loops=)

  • Output: arch.objectid, arch.koz_identif, arch.begin_geldigheid, arch.eind_geldigheid, arch.type, arch.aanduiding, arch.aanduiding2, arch.sectie, arch.perceelnummer, arch.appartementsindex, arch.gemeentecode, arch.aand_soort_grootte, arch.grootte_perceel, arch.deelperceelnummer, arch.omschr_deelperceel, arch.aard_cultuur_onbebouwd, arch.bedrag, arch.koopjaar, arch.meer_onroerendgoed, arch.valutasoort, arch.loc_omschr, arch.overgegaan_in, arch.begrenzing_perceel
  • Index Cond: (h.fk_sc_rh_koz_kad_identif = arch.koz_identif)
16. 0.000 0.000 ↓ 0.0

Index Scan using kad_zak_recht_sc_kad_identif_idx on wdd.kad_zak_recht bel (cost=0.43..17.72 rows=8 width=49) (actual rows= loops=)

  • Output: bel.sc_kad_identif, bel.kadsleutel, bel.bpl_identif, bel.ka_kad_gemeentecode, bel.ka_sectie, bel.ka_perceelnummer, bel.ka_deelperceelnummer, bel.grootte_perceel, bel.naam_zakelijk_gerechtigde, bel.geboortedatum, bel.overlijdensdatum, bel.omschr_aard_verkregenr_recht, bel.criterium_type, bel.criterium_zakelijkrecht, bel.criterium_aandeel, bel.criterium_rechthebbende, bel.criterium_geboortedatum, bel.rijnummer
  • Index Cond: (q.koz_identif = bel.sc_kad_identif)