explain.depesz.com

PostgreSQL's explain analyze made readable

Result: YGGO

Settings

Optimization(s) for this plan:

# exclusive inclusive rows x rows loops node
1. 0.035 9,499.202 ↑ 1.0 100 1

Limit (cost=9.47..164,374.03 rows=100 width=134) (actual time=1,631.802..9,499.202 rows=100 loops=1)

  • Output: dm.zrodlo, dm.id_metadanych, dok_m.id, dok_m.identyfikator_epwd, dok_m.typ_odpowiedzi
2.          

Initplan (for Limit)

3. 0.006 0.006 ↑ 1.0 1 1

Index Scan using uq_slow_typy_dokumentu_kod on slowniki.slow_typy_dokumentu (cost=0.14..4.16 rows=1 width=4) (actual time=0.005..0.006 rows=1 loops=1)

  • Output: slow_typy_dokumentu.id
  • Index Cond: ((slow_typy_dokumentu.kod)::text = 'KOM'::text)
4. 0.386 9,499.161 ↑ 38.6 100 1

Nested Loop (cost=5.31..6,347,764.35 rows=3,862 width=134) (actual time=1,631.800..9,499.161 rows=100 loops=1)

  • Output: dm.zrodlo, dm.id_metadanych, dok_m.id, dok_m.identyfikator_epwd, dok_m.typ_odpowiedzi
  • Join Filter: (m.id = dm.id_metadanych)
5. 524.653 9,496.175 ↑ 84.0 100 1

Nested Loop (cost=4.75..6,342,383.44 rows=8,403 width=31) (actual time=1,631.572..9,496.175 rows=100 loops=1)

  • Output: m.id, dok_m.id, dok_m.identyfikator_epwd, dok_m.typ_odpowiedzi, dok_m.id_poswiadczenia
6. 377.668 3,681.922 ↓ 1.3 881,600 1

Hash Join (cost=4.17..5,879,220.13 rows=682,163 width=12) (actual time=0.114..3,681.922 rows=881,600 loops=1)

  • Output: m.id, m.data_poswiadczenia
  • Hash Cond: (m.id_typu_dokumentu = s.id)
7. 3,304.215 3,304.215 ↑ 26.2 4,694,040 1

Seq Scan on esp.metadane m (cost=0.00..5,411,934.40 rows=122,789,313 width=16) (actual time=0.031..3,304.215 rows=4,694,040 loops=1)

  • Output: m.id, m.id_typu_dokumentu, m.data_poswiadczenia
  • Filter: ((m.kod_statusu_metadanych)::text <> ALL ('{UPDW,UPDWB}'::text[]))
  • Rows Removed by Filter: 905,579
8. 0.007 0.039 ↑ 1.0 1 1

Hash (cost=4.16..4.16 rows=1 width=4) (actual time=0.039..0.039 rows=1 loops=1)

  • Output: s.id
  • Buckets: 1,024 Batches: 1 Memory Usage: 9kB
9. 0.032 0.032 ↑ 1.0 1 1

Index Scan using uq_slow_typy_dokumentu_kod on slowniki.slow_typy_dokumentu s (cost=0.14..4.16 rows=1 width=4) (actual time=0.032..0.032 rows=1 loops=1)

  • Output: s.id
  • Index Cond: ((s.kod)::text = 'UPD'::text)
10. 5,289.600 5,289.600 ↓ 0.0 0 881,600

Index Scan using idx_metadane_id_poswiadczenia on esp.metadane dok_m (cost=0.57..0.67 rows=1 width=27) (actual time=0.006..0.006 rows=0 loops=881,600)

  • Output: dok_m.id, dok_m.identyfikator_epwd, dok_m.typ_odpowiedzi, dok_m.id_poswiadczenia
  • Index Cond: (dok_m.id_poswiadczenia = m.id)
  • Filter: ((dok_m.id_typu_dokumentu <> $0) AND (((dok_m.typ_odpowiedzi)::text = 'EDS-INF-PRZ'::text) OR ((m.data_poswiadczenia IS NOT NULL) AND (m.data_poswiadczenia >= (current_date - '14 days'::interval)))))
  • Rows Removed by Filter: 1
11. 2.600 2.600 ↑ 1.0 1 100

Index Scan using pk_dokumenty_merytoryczne on esp.dokumenty_merytoryczne dm (cost=0.57..0.63 rows=1 width=111) (actual time=0.025..0.026 rows=1 loops=100)

  • Output: dm.id_metadanych, dm.zrodlo
  • Index Cond: (dm.id_metadanych = dok_m.id_poswiadczenia)