explain.depesz.com

PostgreSQL's explain analyze made readable

Result: iuOv

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

Limit (cost=116,568.19..116,806.69 rows=300 width=108) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Result (cost=116,568.19..117,414.07 rows=1,064 width=108) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Sort (cost=116,568.19..116,570.85 rows=1,064 width=140) (actual rows= loops=)

  • Sort Key: (ts_rank('{0.8,0.1,0.2,0.05}'::real[], s.search_vector, plainto_tsquery(l.pg_dict, 'g:*'::text))) DESC, s.ev_oc_desc
4. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=651.80..116,519.09 rows=1,064 width=140) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=649.94..57,331.17 rows=18,283 width=279) (actual rows= loops=)

6. 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)
7. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on tsearchevoc s (cost=649.94..57,147.29 rows=18,283 width=278) (actual rows= loops=)

  • Recheck Cond: (search_vector @@ plainto_tsquery(l.pg_dict, 'g:*'::text))
  • Filter: ((lang)::bpchar = 'en'::bpchar)
8. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on isearchevoc_x7 (cost=0.00..645.37 rows=18,283 width=0) (actual rows= loops=)

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

Nested Loop (cost=1.86..3.21 rows=1 width=24) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.43..2.74 rows=1 width=20) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.43..1.66 rows=1 width=27) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.28..1.46 rows=1 width=16) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.99..1.14 rows=1 width=12) (actual rows= loops=)

  • Join Filter: (e.ev_id = u.ev_id)
14. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.71..0.82 rows=1 width=8) (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':
15. 0.000 0.000 ↓ 0.0

Index Scan using ievmkt_x5 on tevmkt m (cost=0.42..0.48 rows=1 width=6) (actual rows= loops=)

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

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

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

Index Only Scan using ievunstl_x1 on tevunstl u (cost=0.28..0.30 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (ev_id = s.ev_id)
18. 0.000 0.000 ↓ 0.0

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

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

Index Scan using ievclass_x2 on tevclass c (cost=0.14..0.18 rows=1 width=11) (actual rows= loops=)

  • Index Cond: (ev_class_id = s.ev_class_id)
  • Filter: ((displayed ~~ 'Y'::text) AND (channels ~ '[T2]'::text) AND (channels ~ '[T2]'::text) AND (category = 'SOCCER'::text) AND (status = 'A'::bpchar) AND (fo_avail
20. 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))
21. 0.000 0.000 ↓ 0.0

Index Only Scan using ievoc_x3 on tevoc o (cost=0.43..0.46 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (ev_oc_id = s.ev_oc_id)