explain.depesz.com

PostgreSQL's explain analyze made readable

Result: jMGR

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

Unique (cost=57,824.35..57,824.37 rows=1 width=100) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=57,824.35..57,824.36 rows=1 width=100) (actual rows= loops=)

  • Sort Key: (ROW(s.ref_id, s.ref_key)), s.ref_id, s.search_text, (ts_headline(l.pg_dict, (s.search_text)::text, to_tsquery(l.pg_dict, 'g:*'::text), 'StartSel=<cnorris], StopSel=<cnorris]'::text))
3. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=360.10..57,824.34 rows=1 width=100) (actual rows= loops=)

  • Join Filter: (s.ref_id = o.ev_oc_id)
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=349.75..57,119.56 rows=18,144 width=40) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Seq Scan on tlang l (cost=0.00..1.05 rows=1 width=7) (actual rows= loops=)

  • Filter: (lang = 'en'::bpchar)
6. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on tsearch s (cost=349.75..56,937.07 rows=18,144 width=94) (actual rows= loops=)

  • Recheck Cond: (search_vector @@ to_tsquery(l.pg_dict, 'g:*'::text))
  • Filter: (((lang)::bpchar = 'en'::bpchar) AND ((ref_key)::text = 'OUTCOME'::text))
7. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on isearch_x4 (cost=0.00..345.22 rows=22,529 width=0) (actual rows= loops=)

  • Index Cond: (search_vector @@ to_tsquery(l.pg_dict, 'g:*'::text))
8. 0.000 0.000 ↓ 0.0

Materialize (cost=10.34..432.13 rows=1 width=4) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=10.34..432.12 rows=1 width=4) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=10.34..431.04 rows=1 width=11) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.91..423.78 rows=1 width=15) (actual rows= loops=)

  • Join Filter: (u.ev_id = d.ev_id)
12. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.62..405.08 rows=51 width=23) (actual rows= loops=)

  • Join Filter: ((m.bet_in_run = 'Y'::bpchar) OR (e.is_off = 'N'::bpchar) OR ((e.is_off = ANY ('{-,Y}'::bpchar[])) AND (e.start_time >= '2019-09-03 20:30:00'::timestamp w
13. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.20..255.48 rows=9 width=25) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8.91..249.23 rows=10 width=29) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Hash Join (cost=8.62..151.74 rows=123 width=15) (actual rows= loops=)

  • Hash Cond: (u.ev_class_id = c.ev_class_id)
16. 0.000 0.000 ↓ 0.0

Seq Scan on tevunstl u (cost=0.00..120.10 rows=5,810 width=12) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=8.56..8.56 rows=5 width=11) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on tevclass c (cost=4.23..8.56 rows=5 width=11) (actual rows= loops=)

  • Recheck Cond: (category = 'SOCCER'::text)
  • Filter: ((displayed ~~ 'Y'::text) AND (channels ~ '[T2]'::text) AND (channels ~ '[T2]'::text) AND (fo_avail = 'Y'::bpchar) AND (status =
19. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ievclass_x4 (cost=0.00..4.23 rows=11 width=0) (actual rows= loops=)

  • Index Cond: (category = 'SOCCER'::text)
20. 0.000 0.000 ↓ 0.0

Index Scan using iev_x7 on tev e (cost=0.29..0.78 rows=1 width=14) (actual rows= loops=)

  • Index Cond: (ev_id = u.ev_id)
  • Filter: ((displayed ~~ 'Y'::text) AND (channels ~ '[T2]'::text) AND (fo_avail = 'Y'::bpchar) AND (status = 'A'::bpchar) AND ((suspend_at IS NULL) OR
21. 0.000 0.000 ↓ 0.0

Index Scan using ievtype_x2 on tevtype t (cost=0.29..0.61 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (ev_type_id = u.ev_type_id)
  • Filter: ((displayed ~~ 'Y'::text) AND ((flags !~~ '%VR%'::text) OR (flags IS NULL)) AND (channels ~ '[T2]'::text) AND (fo_avail = 'Y'::bpchar) AND (status
22. 0.000 0.000 ↓ 0.0

Index Scan using ievmkt_x6 on tevmkt m (cost=0.42..16.46 rows=7 width=10) (actual rows= loops=)

  • Index Cond: (ev_id = u.ev_id)
  • Filter: ((channels ~ '[T2]'::text) AND (fo_avail = 'Y'::bpchar) AND (status = 'A'::bpchar))
23. 0.000 0.000 ↓ 0.0

Index Scan using ievmktdisp_x1 on tevmktdisp d (cost=0.29..0.35 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (ev_mkt_id = m.ev_mkt_id)
  • Filter: (m.ev_id = ev_id)
24. 0.000 0.000 ↓ 0.0

Index Scan using ievoc_x5 on tevoc o (cost=0.43..7.10 rows=16 width=8) (actual rows= loops=)

  • Index Cond: (ev_mkt_id = d.ev_mkt_id)
  • Filter: ((displayed ~~ 'Y'::text) AND (channels ~ '[T2]'::text) AND (fo_avail = 'Y'::bpchar))
25. 0.000 0.000 ↓ 0.0

Seq Scan on tevcategory ct (cost=0.00..1.07 rows=1 width=8) (actual rows= loops=)

  • Filter: ((displayed ~~ 'Y'::text) AND (category = 'SOCCER'::text))