explain.depesz.com

PostgreSQL's explain analyze made readable

Result: XSYI

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

Limit (cost=9,417.55..9,417.66 rows=3 width=255) (actual rows= loops=)

2.          

Initplan (for Limit)

3. 0.000 0.000 ↓ 0.0

Index Scan using uq_slow_typy_dokumentu_kod on slow_typy_dokumentu k (cost=0.14..4.16 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((kod)::text = 'UPD'::text)
4. 0.000 0.000 ↓ 0.0

Unique (cost=9,413.39..9,413.50 rows=3 width=255) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Sort (cost=9,413.39..9,413.40 rows=3 width=255) (actual rows= loops=)

  • Sort Key: p.data_utworzenia DESC, p.id, (to_char(p.data_utworzenia, 'YYYY-MM-DD"T"HH24:MI:SS'::text)), p.zrodlo_powstania, dok_m.zrodlo, (to_char(mini.data_wplywu, 'YYYY-MM-DD"T"HH24:MI:SS'::text)), ((((di.imie)::text || ' '::text) || (di.nazwisko)::text)), p.id_roli, dok.wnioskodawca_nazwa, dok.wnioskodawca_organ_podrzedny, dok.sygnatura_sprawy_wnioskodawcy, dok.identyfikator_podmiotu, dok.podpisujacy_nazwa
6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=8,738.54..9,413.37 rows=3 width=255) (actual rows= loops=)

  • Filter: ((hashed SubPlan 1) OR ((up.id IS NOT NULL) AND (upd.id_typu_dokumentu = (SubPlan 2))) OR (dok.id_dokumentu_inicjujacego IS NULL))
7. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=8,737.38..9,339.30 rows=3 width=187) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=8,736.95..9,337.83 rows=3 width=175) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=8,736.52..9,336.45 rows=3 width=175) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8,735.95..9,334.47 rows=3 width=163) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8,735.39..9,331.92 rows=4 width=108) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on metadane p (cost=8,734.82..9,308.93 rows=5 width=20) (actual rows= loops=)

  • Recheck Cond: ((id_roli = ANY ('{11744005,11744005,11744008,11744006,11744007,4178729}'::integer[])) AND ((kod_statusu_metadanych)::text = 'ND'::text) AND (id_typu_dokumentu = $2))
  • Filter: ((data_poswiadczenia IS NULL) AND ((kod_rodzaju_dokumentu)::text = 'UPO'::text))
13. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=8,734.82..8,734.82 rows=285 width=0) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on idx_metadane_id_roli (cost=0.00..1,397.22 rows=97,844 width=0) (actual rows= loops=)

  • Index Cond: (id_roli = ANY ('{11744005,11744005,11744008,11744006,11744007,4178729}'::integer[]))
15. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on idx_metadane_kod_statusu_id_typu (cost=0.00..7,337.35 rows=346,878 width=0) (actual rows= loops=)

  • Index Cond: (((kod_statusu_metadanych)::text = 'ND'::text) AND (id_typu_dokumentu = $2))
16. 0.000 0.000 ↓ 0.0

Index Scan using idx_metadane_id_poswiadczenia on metadane dok (cost=0.57..4.59 rows=1 width=92) (actual rows= loops=)

  • Index Cond: (id_poswiadczenia = p.id)
  • Filter: ((kod_statusu_metadanych)::text <> 'ODBR'::text)
17. 0.000 0.000 ↓ 0.0

Index Scan using pk_dokumenty_merytoryczne on dokumenty_merytoryczne dok_m (cost=0.57..0.63 rows=1 width=63) (actual rows= loops=)

  • Index Cond: (id_metadanych = dok.id)
18. 0.000 0.000 ↓ 0.0

Index Scan using pk_metadane on metadane mini (cost=0.57..0.65 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (dok.id_dokumentu_inicjujacego = id)
19. 0.000 0.000 ↓ 0.0

Index Scan using pk_profile_pue on profile_pue pp (cost=0.43..0.45 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (mini.id_profilu = id)
20. 0.000 0.000 ↓ 0.0

Index Scan using pk_dane_identyfikacyjne on dane_identyfikacyjne di (cost=0.43..0.48 rows=1 width=20) (actual rows= loops=)

  • Index Cond: (pp.id_danych_ident = id)
21. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.16..20.08 rows=1 width=12) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Seq Scan on slow_typy_dokumentu std (cost=0.00..6.84 rows=1 width=4) (actual rows= loops=)

  • Filter: (upper((do_korespondencji)::text) = 'TAK'::text)
23. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.16..13.23 rows=1 width=12) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.86..8.91 rows=1 width=8) (actual rows= loops=)

  • -> Index Only Scan using pk_upowaznienia_profilu on upowaznienia_profilu up (cost=0.43..4.45 rows=1width=4)
25. 0.000 0.000 ↓ 0.0

Index Scan using idx_konteksty_id_roli on konteksty kon (cost=0.43..4.46 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id_roli = p.id_roli)
  • Filter: ((usuniety IS NOT TRUE) AND ((relacja)::text = 'Proxy'::text))
  • Index Cond: ((id IS NOT NULL) AND (id = 2120670))
26. 0.000 0.000 ↓ 0.0

Index Scan using idx_upowaznienia_dokumenty_id_upowaznienia_id_typu_dokumentu on upowaznienia_dokumentyupd (cost=0.29..4.31 rows=1 width=8) (actual rows= loops=)

  • Index Cond: ((id_upowaznienia = 2120670) AND (id_typu_dokumentu = std.id))
  • Filter: udostepniony
27.          

SubPlan (for Nested Loop Left Join)

28. 0.000 0.000 ↓ 0.0

Result (cost=0.00..0.00 rows=0 width=4) (actual rows= loops=)

  • One-Time Filter: false
29. 0.000 0.000 ↓ 0.0

Index Scan using pk_metadane on metadane meta (cost=0.57..4.58 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = dok.id_dokumentu_inicjujacego)