explain.depesz.com

PostgreSQL's explain analyze made readable

Result: UOp2

Settings
# exclusive inclusive rows x rows loops node
1. 64,388.866 2,854,933.368 ↓ 3,042,411.0 3,042,411 1

Unique (cost=435,491.58..435,491.64 rows=1 width=220) (actual time=2,397,901.937..2,854,933.368 rows=3,042,411 loops=1)

  • 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. 2,489,743.909 2,790,544.502 ↓ 60,461,182.0 60,461,182 1

Sort (cost=435,491.58..435,491.58 rows=1 width=220) (actual time=2,397,901.936..2,790,544.502 rows=60,461,182 loops=1)

  • 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
  • Sort Method: external merge Disk: 9952488kB
3. 233,191.798 300,800.593 ↓ 60,461,182.0 60,461,182 1

Nested Loop Left Join (cost=20,111.53..435,491.57 rows=1 width=220) (actual time=230.977..300,800.593 rows=60,461,182 loops=1)

  • 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. 445.968 31,889.371 ↓ 1,116,232.0 1,116,232 1

Nested Loop Left Join (cost=20,111.10..435,473.75 rows=1 width=179) (actual time=230.327..31,889.371 rows=1,116,232 loops=1)

  • 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. 550.287 26,918.421 ↓ 646,426.0 646,426 1

Nested Loop Left Join (cost=20,110.68..435,471.99 rows=1 width=145) (actual time=230.313..26,918.421 rows=646,426 loops=1)

  • 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. 440.558 22,491.506 ↓ 553,804.0 553,804 1

Nested Loop Left Join (cost=20,110.25..435,467.37 rows=1 width=122) (actual time=230.292..22,491.506 rows=553,804 loops=1)

  • 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. 425.530 20,389.536 ↓ 553,804.0 553,804 1

Nested Loop (cost=20,110.11..435,467.20 rows=1 width=88) (actual time=230.276..20,389.536 rows=553,804 loops=1)

  • 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. 651.513 4,404.278 ↓ 324,161.0 324,161 1

Hash Anti Join (cost=20,109.68..435,443.96 rows=1 width=76) (actual time=230.230..4,404.278 rows=324,161 loops=1)

  • 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. 3,523.071 3,523.071 ↓ 16.8 393,973 1

Seq Scan on public.mb_kad_onrrnd_zk_adres q (cost=0.00..412,090.24 rows=23,476 width=90) (actual time=0.049..3,523.071 rows=393,973 loops=1)

  • 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)
  • Rows Removed by Filter: 4307687
10. 119.130 229.694 ↑ 1.0 505,408 1

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

  • Output: belastingplichtige.aanduiding2
  • Buckets: 131072 Batches: 8 Memory Usage: 3900kB
11. 110.564 110.564 ↑ 1.0 505,408 1

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

  • Output: belastingplichtige.aanduiding2
12. 15,559.728 15,559.728 ↑ 3.5 2 324,161

Index Scan using zak_recht_fk_kad_identif_idx on public.zak_recht z (cost=0.43..23.17 rows=7 width=21) (actual time=0.038..0.048 rows=2 loops=324,161)

  • 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[])))
  • Rows Removed by Filter: 2
13. 1,661.412 1,661.412 ↑ 1.0 1 553,804

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

  • Output: avr.aand, avr.omschr_aard_verkregenr_recht
  • Index Cond: ((z.fk_3avr_aand)::text = (avr.aand)::text)
14. 3,876.628 3,876.628 ↑ 2.0 1 553,804

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 time=0.007..0.007 rows=1 loops=553,804)

  • 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. 4,524.982 4,524.982 ↑ 1.0 1 646,426

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 time=0.005..0.007 rows=1 loops=646,426)

  • 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. 35,719.424 35,719.424 ↓ 6.8 54 1,116,232

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 time=0.011..0.032 rows=54 loops=1,116,232)

  • 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)
Planning time : 3.868 ms
Execution time : 2,856,354.215 ms