explain.depesz.com

PostgreSQL's explain analyze made readable

Result: G76

Settings
# exclusive inclusive rows x rows loops node
1. 0.007 340.978 ↑ 1.0 14 1

Limit (cost=2,806,897.06..2,806,897.10 rows=14 width=366) (actual time=340.973..340.978 rows=14 loops=1)

2. 0.260 340.971 ↑ 2.5 140 1

Sort (cost=2,806,896.75..2,806,897.61 rows=344 width=366) (actual time=340.932..340.971 rows=140 loops=1)

  • Sort Key: p.title_sortable COLLATE vue
  • Sort Method: quicksort Memory: 602kB
3. 0.414 340.711 ↑ 2.3 150 1

WindowAgg (cost=2,797,135.69..2,806,882.76 rows=344 width=366) (actual time=340.561..340.711 rows=150 loops=1)

4. 0.011 340.297 ↑ 2.3 150 1

Append (cost=2,797,135.69..2,806,869.00 rows=344 width=344) (actual time=336.432..340.297 rows=150 loops=1)

5. 0.382 336.489 ↑ 1.7 105 1

Sort (cost=2,797,135.69..2,797,136.14 rows=177 width=1,590) (actual time=336.431..336.489 rows=105 loops=1)

  • Sort Key: p.title_sortable COLLATE vue
  • Sort Method: quicksort Memory: 448kB
6. 0.100 336.107 ↑ 1.7 105 1

Nested Loop Left Join (cost=15,795.25..2,797,129.08 rows=177 width=1,590) (actual time=17.055..336.107 rows=105 loops=1)

7. 0.132 318.682 ↑ 1.7 105 1

Nested Loop (cost=15,376.58..2,723,019.21 rows=177 width=1,566) (actual time=15.870..318.682 rows=105 loops=1)

8. 0.148 0.656 ↑ 1.7 106 1

Nested Loop (cost=0.85..1,511.57 rows=177 width=12) (actual time=0.021..0.656 rows=106 loops=1)

9. 0.140 0.140 ↓ 1.0 184 1

Index Scan using sentv_user_favorite_series_pkey on sentv_user_favorite_series fs (cost=0.56..687.82 rows=177 width=12) (actual time=0.014..0.140 rows=184 loops=1)

  • Index Cond: (profile_id = 20212)
10. 0.368 0.368 ↑ 1.0 1 184

Index Only Scan using sentv_series_pkey on sentv_series s (cost=0.29..4.64 rows=1 width=4) (actual time=0.002..0.002 rows=1 loops=184)

  • Index Cond: (series_id = fs.series_id)
  • Heap Fetches: 41
11. 0.106 317.894 ↑ 1.0 1 106

Limit (cost=15,375.73..15,375.73 rows=1 width=1,586) (actual time=2.999..2.999 rows=1 loops=106)

12. 5.194 317.788 ↑ 33.0 1 106

Sort (cost=15,375.73..15,375.81 rows=33 width=1,586) (actual time=2.998..2.998 rows=1 loops=106)

  • Sort Key: (CASE WHEN (((array_agg(CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) < now()) THEN ((array_agg(CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) ELSE NULL::timestamp without time zone END) DESC NULLS LAST, (CASE WHEN (((array_agg(a.start_date ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) < now()) THEN ((array_agg(a.start_date ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) ELSE NULL::timestamp without time zone END) DESC NULLS LAST, (CASE WHEN (((array_agg(CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) >= now()) THEN ((array_agg(CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) ELSE NULL::timestamp without time zone END), (CASE WHEN (((array_agg(a.start_date ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) >= now()) THEN ((array_agg(a.start_date ORDER BY CASE WHEN (a.broadcast_date IS NULL) THEN a.calculated_broadcast_date ELSE a.broadcast_date END DESC, CASE WHEN (a.start_date <= now()) THEN a.start_date ELSE '-infinity'::timestamp without time zone END DESC, CASE WHEN (a.start_date > now()) THEN a.start_date ELSE 'infinity'::timestamp without time zone END, a.airing_id))[1]) ELSE NULL::timestamp without time zone END)
  • Sort Method: top-N heapsort Memory: 26kB
13. 7.330 312.594 ↓ 1.6 54 106

Nested Loop Left Join (cost=15,087.63..15,375.56 rows=33 width=1,586) (actual time=1.517..2.949 rows=54 loops=106)

14. 136.316 293.832 ↓ 1.6 54 106

GroupAggregate (cost=15,087.06..15,090.69 rows=33 width=1,532) (actual time=1.512..2.772 rows=54 loops=106)

  • Group Key: p.program_id
15. 18.974 157.516 ↓ 2.7 89 106

Sort (cost=15,087.06..15,087.14 rows=33 width=2,298) (actual time=1.450..1.486 rows=89 loops=106)

  • Sort Key: p.program_id
  • Sort Method: quicksort Memory: 92kB
16. 4.840 138.542 ↓ 2.7 89 106

Nested Loop Left Join (cost=6.22..15,086.23 rows=33 width=2,298) (actual time=0.026..1.307 rows=89 loops=106)

  • Join Filter: (p.series_id = s.series_id)
17. 6.996 7.950 ↓ 1.6 54 106

Bitmap Heap Scan on sentv_program p (cost=4.68..134.74 rows=33 width=1,384) (actual time=0.016..0.075 rows=54 loops=106)

  • Recheck Cond: (series_id = s.series_id)
  • Heap Blocks: exact=5902
18. 0.954 0.954 ↓ 1.8 58 106

Bitmap Index Scan on sentv_program_series_id_idx (cost=0.00..4.67 rows=33 width=0) (actual time=0.009..0.009 rows=58 loops=106)

  • Index Cond: (series_id = s.series_id)
19. 0.448 125.752 ↑ 1.0 1 5,716

Nested Loop Anti Join (cost=1.54..453.06 rows=1 width=922) (actual time=0.009..0.022 rows=1 loops=5,716)

20. 7.508 120.036 ↑ 1.0 1 5,716

Nested Loop (cost=1.27..446.19 rows=1 width=1,003) (actual time=0.009..0.021 rows=1 loops=5,716)

21. 7.894 91.456 ↑ 4.0 1 5,716

Nested Loop (cost=0.71..437.18 rows=4 width=1,014) (actual time=0.007..0.016 rows=1 loops=5,716)

22. 57.160 57.160 ↑ 22.0 2 5,716

Index Scan using sentv_airing_program_id_idx on sentv_airing a (cost=0.43..422.75 rows=44 width=1,018) (actual time=0.005..0.010 rows=2 loops=5,716)

  • Index Cond: (program_id = p.program_id)
  • Filter: ((start_date >= '2019-01-08 12:17:14.078'::timestamp without time zone) AND (dvr_expiration_date <> end_date) AND ((age_rating || '_RESTRICTED'::text) <> ALL ('{PSVUE_MEDIA_OPS}'::text[])) AND ((dvr_expiration_date > now()) OR (expiration_date > now()) OR (((vod_ready_date IS NULL) OR (vod_ready_date <= now())) AND (expiration_date >= now()))))
  • Rows Removed by Filter: 4
23. 26.402 26.402 ↓ 0.0 0 13,201

Index Scan using sentv_channel_channel_id_idx on sentv_channel c (cost=0.28..0.32 rows=1 width=4) (actual time=0.002..0.002 rows=0 loops=13,201)

  • Index Cond: (channel_id = a.channel_id)
  • Filter: ((('SUPER'::text = ANY ('{PSVUE_MEDIA_OPS}'::text[])) OR ('{PSVUE_MEDIA_OPS}'::text[] && ent_keywords)) AND (cardinality(region_dma_codes) > 0) AND (((channel_id)::text || '_RESTRICTED'::text) <> ALL ('{PSVUE_MEDIA_OPS}'::text[])))
  • Rows Removed by Filter: 1
24. 21.072 21.072 ↑ 1.0 1 5,268

Index Scan using sentv_user_favorite_series_pkey on sentv_user_favorite_series fs_1 (cost=0.56..2.22 rows=1 width=12) (actual time=0.004..0.004 rows=1 loops=5,268)

  • Index Cond: ((profile_id = 20212) AND (series_id = a.series_id))
  • Filter: ((favorite_date < a.end_date) AND (((favorite_date < a.end_date) AND (a.dvr_expiration_date > now())) OR (a.expiration_date > now()) OR (((a.vod_ready_date IS NULL) OR (a.vod_ready_date <= now())) AND (a.expiration_date >= now()))) AND (CASE WHEN (a.type = 'vod'::text) THEN 'vod'::text WHEN (now() < a.start_date) THEN 'coming_up'::text WHEN ((now() > a.start_date) AND (now() < a.end_date)) THEN 'live'::text WHEN ((now() < a.dvr_expiration_date) AND (favorite_date < a.end_date)) THEN 'dvr'::text WHEN ((CASE WHEN (a.type = 'vod'::text) THEN a.expiration_date WHEN ((now() < a.dvr_expiration_date) AND (favorite_date < a.end_date)) THEN a.dvr_expiration_date WHEN (a.fallback_startover_date IS NOT NULL) THEN a.fallback_startover_date ELSE a.expiration_date END IS NOT NULL) AND (now() < CASE WHEN (a.type = 'vod'::text) THEN a.expiration_date WHEN ((now() < a.dvr_expiration_date) AND (favorite_date < a.end_date)) THEN a.dvr_expiration_date WHEN (a.fallback_startover_date IS NOT NULL) THEN a.fallback_startover_date ELSE a.expiration_date END)) THEN 'catchup'::text WHEN a.vod_replacement_available THEN 'vod'::text ELSE 'no_longer_available'::text END <> 'vod'::text) AND (CASE WHEN (a.type = 'vod'::text) THEN 'vod'::text WHEN (now() < a.start_date) THEN 'coming_up'::text WHEN ((now() > a.start_date) AND (now() < a.end_date)) THEN 'live'::text WHEN ((now() < a.dvr_expiration_date) AND (favorite_date < a.end_date)) THEN 'dvr'::text WHEN ((CASE WHEN (a.type = 'vod'::text) THEN a.expiration_date WHEN ((now() < a.dvr_expiration_date) AND (favorite_date < a.end_date)) THEN a.dvr_expiration_date WHEN (a.fallback_startover_date IS NOT NULL) THEN a.fallback_startover_date ELSE a.expiration_date END IS NOT NULL) AND (now() < CASE WHEN (a.type = 'vod'::text) THEN a.expiration_date WHEN ((now() < a.dvr_expiration_date) AND (favorite_date < a.end_date)) THEN a.dvr_expiration_date WHEN (a.fallback_startover_date IS NOT NULL) THEN a.fallback_startover_date ELSE a.expiration_date END)) THEN 'catchup'::text WHEN a.vod_replacement_available THEN 'vod'::text ELSE 'no_longer_available'::text END <> 'no_longer_available'::text))
25. 5.268 5.268 ↓ 0.0 0 5,268

Index Scan using sentv_blackout_rule_pkey on sentv_blackout_rule b (cost=0.28..3.55 rows=5 width=1,425) (actual time=0.001..0.001 rows=0 loops=5,268)

  • Index Cond: ((rule_name)::text = ANY (a.bo_rules))
  • Filter: CASE WHEN (('ALL'::text = ANY (dmas)) OR ('10011'::text = ANY (zipcodes)) OR ('firetv'::text = ANY (device_types)) OR ((cardinality(media_blackouts) > 0) AND (('ALL_BLACKOUT'::text = ANY (a.bo_keywords)) OR (a.bo_keywords && media_blackouts)))) THEN CASE WHEN (rule_type = 1) THEN true ELSE false END ELSE CASE WHEN (rule_type = 2) THEN true ELSE false END END
  • Rows Removed by Filter: 0
26. 11.432 11.432 ↓ 0.0 0 5,716

Index Scan using sentv_user_program_watch_history_pkey on sentv_user_program_watch_history whp (cost=0.57..8.59 rows=1 width=26) (actual time=0.002..0.002 rows=0 loops=5,716)

  • Index Cond: ((profile_id = 20212) AND (program_id = p.program_id))
27. 0.630 17.325 ↑ 1.0 1 105

Aggregate (cost=418.67..418.68 rows=1 width=8) (actual time=0.165..0.165 rows=1 loops=105)

28. 0.013 16.695 ↓ 3.1 52 105

Nested Loop Left Join (cost=5.25..418.63 rows=17 width=0) (actual time=0.020..0.159 rows=52 loops=105)

  • Filter: ((pwh.fully_watched IS NULL) OR (pwh.fully_watched IS FALSE))
  • Rows Removed by Filter: 3
29. 4.305 5.250 ↓ 1.6 54 105

Bitmap Heap Scan on sentv_program p_1 (cost=4.68..134.74 rows=33 width=4) (actual time=0.015..0.050 rows=54 loops=105)

  • Recheck Cond: (series_id = s.series_id)
  • Heap Blocks: exact=5902
30. 0.945 0.945 ↓ 1.8 58 105

Bitmap Index Scan on sentv_program_series_id_idx (cost=0.00..4.67 rows=33 width=0) (actual time=0.009..0.009 rows=58 loops=105)

  • Index Cond: (series_id = s.series_id)
31. 11.432 11.432 ↓ 0.0 0 5,716

Index Scan using sentv_user_program_watch_history_pkey on sentv_user_program_watch_history pwh (cost=0.57..8.59 rows=1 width=5) (actual time=0.002..0.002 rows=0 loops=5,716)

  • Index Cond: ((profile_id = 20212) AND (p_1.program_id = program_id))
32. 0.018 3.797 ↑ 3.7 45 1

Subquery Scan on *SELECT* 2 (cost=9,728.59..9,731.10 rows=167 width=1,590) (actual time=3.766..3.797 rows=45 loops=1)

33. 0.081 3.779 ↑ 3.7 45 1

Sort (cost=9,728.59..9,729.01 rows=167 width=1,586) (actual time=3.762..3.779 rows=45 loops=1)

  • Sort Key: p_2.title_sortable COLLATE vue
  • Sort Method: quicksort Memory: 174kB
34. 0.042 3.698 ↑ 3.7 45 1

Nested Loop Left Join (cost=8,265.92..9,722.43 rows=167 width=1,586) (actual time=2.352..3.698 rows=45 loops=1)

35. 1.303 3.566 ↑ 3.7 45 1

GroupAggregate (cost=8,265.35..8,284.14 rows=167 width=1,540) (actual time=2.345..3.566 rows=45 loops=1)

  • Group Key: p_2.program_id, fp.favorite_date
36. 0.130 2.263 ↑ 1.9 89 1

Sort (cost=8,265.35..8,265.77 rows=167 width=2,306) (actual time=2.239..2.263 rows=89 loops=1)

  • Sort Key: p_2.program_id, fp.favorite_date
  • Sort Method: quicksort Memory: 256kB
37. 0.015 2.133 ↑ 1.9 89 1

Nested Loop Left Join (cost=2.27..8,259.19 rows=167 width=2,306) (actual time=0.081..2.133 rows=89 loops=1)

38. 0.097 0.363 ↑ 3.7 45 1

Nested Loop (cost=0.86..2,012.94 rows=167 width=1,388) (actual time=0.017..0.363 rows=45 loops=1)

39. 0.046 0.046 ↑ 1.5 110 1

Index Scan using sentv_user_favorite_program_pkey on sentv_user_favorite_program fp (cost=0.44..642.21 rows=167 width=12) (actual time=0.009..0.046 rows=110 loops=1)

  • Index Cond: (profile_id = 20212)
40. 0.220 0.220 ↓ 0.0 0 110

Index Scan using sentv_program_pkey on sentv_program p_2 (cost=0.42..8.20 rows=1 width=1,380) (actual time=0.002..0.002 rows=0 loops=110)

  • Index Cond: (program_id = fp.program_id)
41. 0.045 1.755 ↑ 1.0 1 45

Nested Loop Anti Join (cost=1.42..37.39 rows=1 width=922) (actual time=0.012..0.039 rows=1 loops=45)

42. 0.157 1.710 ↑ 1.0 1 45

Nested Loop (cost=1.14..30.52 rows=1 width=1,003) (actual time=0.012..0.038 rows=1 loops=45)

43. 0.003 1.305 ↑ 4.0 1 45

Nested Loop (cost=0.71..24.31 rows=4 width=1,010) (actual time=0.009..0.029 rows=1 loops=45)

44. 0.900 0.900 ↑ 14.7 3 45

Index Scan using sentv_airing_program_id_idx on sentv_airing a_1 (cost=0.43..9.88 rows=44 width=1,014) (actual time=0.005..0.020 rows=3 loops=45)

  • Index Cond: (program_id = p_2.program_id)
  • Filter: ((start_date >= '2019-01-08 12:17:14.078'::timestamp without time zone) AND (dvr_expiration_date <> end_date) AND ((age_rating || '_RESTRICTED'::text) <> ALL ('{PSVUE_MEDIA_OPS}'::text[])) AND ((dvr_expiration_date > now()) OR (expiration_date > now()) OR (((vod_ready_date IS NULL) OR (vod_ready_date <= now())) AND (expiration_date >= now()))))
  • Rows Removed by Filter: 13
45. 0.402 0.402 ↓ 0.0 0 134

Index Scan using sentv_channel_channel_id_idx on sentv_channel c_1 (cost=0.28..0.32 rows=1 width=4) (actual time=0.003..0.003 rows=0 loops=134)

  • Index Cond: (channel_id = a_1.channel_id)
  • Filter: ((('SUPER'::text = ANY ('{PSVUE_MEDIA_OPS}'::text[])) OR ('{PSVUE_MEDIA_OPS}'::text[] && ent_keywords)) AND (cardinality(region_dma_codes) > 0) AND (((channel_id)::text || '_RESTRICTED'::text) <> ALL ('{PSVUE_MEDIA_OPS}'::text[])))
  • Rows Removed by Filter: 1
46. 0.248 0.248 ↑ 1.0 1 62

Index Scan using sentv_user_favorite_program_pkey on sentv_user_favorite_program fp_1 (cost=0.44..1.53 rows=1 width=12) (actual time=0.004..0.004 rows=1 loops=62)

  • Index Cond: ((profile_id = 20212) AND (program_id = a_1.program_id))
  • Filter: ((favorite_date < a_1.end_date) AND (((favorite_date < a_1.end_date) AND (a_1.dvr_expiration_date > now())) OR (a_1.expiration_date > now()) OR (((a_1.vod_ready_date IS NULL) OR (a_1.vod_ready_date <= now())) AND (a_1.expiration_date >= now()))) AND (CASE WHEN (a_1.type = 'vod'::text) THEN 'vod'::text WHEN (now() < a_1.start_date) THEN 'coming_up'::text WHEN ((now() > a_1.start_date) AND (now() < a_1.end_date)) THEN 'live'::text WHEN ((now() < a_1.dvr_expiration_date) AND (favorite_date < a_1.end_date)) THEN 'dvr'::text WHEN ((CASE WHEN (a_1.type = 'vod'::text) THEN a_1.expiration_date WHEN ((now() < a_1.dvr_expiration_date) AND (favorite_date < a_1.end_date)) THEN a_1.dvr_expiration_date WHEN (a_1.fallback_startover_date IS NOT NULL) THEN a_1.fallback_startover_date ELSE a_1.expiration_date END IS NOT NULL) AND (now() < CASE WHEN (a_1.type = 'vod'::text) THEN a_1.expiration_date WHEN ((now() < a_1.dvr_expiration_date) AND (favorite_date < a_1.end_date)) THEN a_1.dvr_expiration_date WHEN (a_1.fallback_startover_date IS NOT NULL) THEN a_1.fallback_startover_date ELSE a_1.expiration_date END)) THEN 'catchup'::text WHEN a_1.vod_replacement_available THEN 'vod'::text ELSE 'no_longer_available'::text END <> 'vod'::text) AND (CASE WHEN (a_1.type = 'vod'::text) THEN 'vod'::text WHEN (now() < a_1.start_date) THEN 'coming_up'::text WHEN ((now() > a_1.start_date) AND (now() < a_1.end_date)) THEN 'live'::text WHEN ((now() < a_1.dvr_expiration_date) AND (favorite_date < a_1.end_date)) THEN 'dvr'::text WHEN ((CASE WHEN (a_1.type = 'vod'::text) THEN a_1.expiration_date WHEN ((now() < a_1.dvr_expiration_date) AND (favorite_date < a_1.end_date)) THEN a_1.dvr_expiration_date WHEN (a_1.fallback_startover_date IS NOT NULL) THEN a_1.fallback_startover_date ELSE a_1.expiration_date END IS NOT NULL) AND (now() < CASE WHEN (a_1.type = 'vod'::text) THEN a_1.expiration_date WHEN ((now() < a_1.dvr_expiration_date) AND (favorite_date < a_1.end_date)) THEN a_1.dvr_expiration_date WHEN (a_1.fallback_startover_date IS NOT NULL) THEN a_1.fallback_startover_date ELSE a_1.expiration_date END)) THEN 'catchup'::text WHEN a_1.vod_replacement_available THEN 'vod'::text ELSE 'no_longer_available'::text END <> 'no_longer_available'::text))
47. 0.000 0.000 ↓ 0.0 0 62

Index Scan using sentv_blackout_rule_pkey on sentv_blackout_rule b_1 (cost=0.28..3.55 rows=5 width=1,425) (actual time=0.000..0.000 rows=0 loops=62)

  • Index Cond: ((rule_name)::text = ANY (a_1.bo_rules))
  • Filter: CASE WHEN (('ALL'::text = ANY (dmas)) OR ('10011'::text = ANY (zipcodes)) OR ('firetv'::text = ANY (device_types)) OR ((cardinality(media_blackouts) > 0) AND (('ALL_BLACKOUT'::text = ANY (a_1.bo_keywords)) OR (a_1.bo_keywords && media_blackouts)))) THEN CASE WHEN (rule_type = 1) THEN true ELSE false END ELSE CASE WHEN (rule_type = 2) THEN true ELSE false END END
48. 0.090 0.090 ↓ 0.0 0 45

Index Scan using sentv_user_program_watch_history_pkey on sentv_user_program_watch_history whp_1 (cost=0.57..8.59 rows=1 width=26) (actual time=0.002..0.002 rows=0 loops=45)

  • Index Cond: ((profile_id = 20212) AND (program_id = p_2.program_id))