========================================================
 Detailed Analysis for Query: 12b 
 Source File: 12b.sql
 Date: Sat Dec 20 11:06:18 CST 2025
========================================================


################################################################
# CONFIGURATION: dp
################################################################

SET
SET
                                                                                                   QUERY PLAN                                                                                                    
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=26702.38..26702.39 rows=1 width=64) (actual time=1.671..1.672 rows=1.00 loops=1)
   Output: min(mi.info), min(t.title)
   Buffers: shared hit=298 read=1
   ->  Nested Loop  (cost=3850.52..26702.37 rows=1 width=59) (actual time=0.845..1.666 rows=10.00 loops=1)
         Output: mi.info, t.title
         Inner Unique: true
         Buffers: shared hit=298 read=1
         ->  Nested Loop  (cost=3850.10..26701.92 rows=1 width=63) (actual time=0.829..1.254 rows=33.00 loops=1)
               Output: mc.company_id, mi.info, t.title
               Inner Unique: true
               Buffers: shared hit=166 read=1
               ->  Nested Loop  (cost=3849.97..26701.60 rows=2 width=67) (actual time=0.816..1.223 rows=33.00 loops=1)
                     Output: mi.info, mc.company_type_id, mc.company_id, t.title
                     Join Filter: (mc.movie_id = t.id)
                     Buffers: shared hit=100 read=1
                     ->  Hash Join  (cost=3849.54..26701.02 rows=1 width=71) (actual time=0.766..1.104 rows=2.00 loops=1)
                           Output: mi.info, mi.movie_id, mi_idx.movie_id, t.title, t.id
                           Inner Unique: true
                           Hash Cond: (mi.info_type_id = it1.id)
                           Buffers: shared hit=90 read=1
                           ->  Nested Loop  (cost=3847.11..26698.49 rows=39 width=75) (actual time=0.604..1.059 rows=221.00 loops=1)
                                 Output: mi_idx.movie_id, mi.info, mi.movie_id, mi.info_type_id, t.title, t.id
                                 Join Filter: (mi.movie_id = t.id)
                                 Buffers: shared hit=89 read=1
                                 ->  Nested Loop  (cost=3846.68..26696.27 rows=1 width=25) (actual time=0.561..0.647 rows=2.00 loops=1)
                                       Output: mi_idx.movie_id, t.title, t.id
                                       Inner Unique: true
                                       Buffers: shared hit=44 read=1
                                       ->  Nested Loop  (cost=3846.25..19546.36 rows=12213 width=4) (actual time=0.316..0.318 rows=10.00 loops=1)
                                             Output: mi_idx.movie_id
                                             Buffers: shared hit=4 read=1
                                             ->  Seq Scan on public.info_type it2  (cost=0.00..2.41 rows=1 width=4) (actual time=0.007..0.008 rows=1.00 loops=1)
                                                   Output: it2.id, it2.info
                                                   Filter: ((it2.info)::text = 'bottom 10 rank'::text)
                                                   Rows Removed by Filter: 112
                                                   Buffers: shared hit=1
                                             ->  Bitmap Heap Scan on public.movie_info_idx mi_idx  (cost=3846.25..16093.86 rows=345009 width=8) (actual time=0.308..0.308 rows=10.00 loops=1)
                                                   Output: mi_idx.id, mi_idx.movie_id, mi_idx.info_type_id, mi_idx.info, mi_idx.note
                                                   Recheck Cond: (it2.id = mi_idx.info_type_id)
                                                   Heap Blocks: exact=1
                                                   Buffers: shared hit=3 read=1
                                                   ->  Bitmap Index Scan on info_type_id_movie_info_idx  (cost=0.00..3759.99 rows=345009 width=0) (actual time=0.294..0.294 rows=10.00 loops=1)
                                                         Index Cond: (mi_idx.info_type_id = it2.id)
                                                         Index Searches: 1
                                                         Buffers: shared hit=2 read=1
                                       ->  Index Scan using title_pkey on public.title t  (cost=0.43..0.59 rows=1 width=21) (actual time=0.033..0.033 rows=0.20 loops=10)
                                             Output: t.id, t.title, t.imdb_index, t.kind_id, t.production_year, t.imdb_id, t.phonetic_code, t.episode_of_id, t.season_nr, t.episode_nr, t.series_years, t.md5sum
                                             Index Cond: (t.id = mi_idx.movie_id)
                                             Filter: ((t.production_year > 2000) AND ((t.title ~~ 'Birdemic%'::text) OR (t.title ~~ '%Movie%'::text)))
                                             Rows Removed by Filter: 1
                                             Index Searches: 10
                                             Buffers: shared hit=40
                                 ->  Index Scan using movie_id_movie_info on public.movie_info mi  (cost=0.43..1.69 rows=42 width=50) (actual time=0.036..0.196 rows=110.50 loops=2)
                                       Output: mi.id, mi.movie_id, mi.info_type_id, mi.info, mi.note
                                       Index Cond: (mi.movie_id = mi_idx.movie_id)
                                       Index Searches: 2
                                       Buffers: shared hit=45
                           ->  Hash  (cost=2.41..2.41 rows=1 width=4) (actual time=0.028..0.028 rows=1.00 loops=1)
                                 Output: it1.id
                                 Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                 Buffers: shared hit=1
                                 ->  Seq Scan on public.info_type it1  (cost=0.00..2.41 rows=1 width=4) (actual time=0.025..0.025 rows=1.00 loops=1)
                                       Output: it1.id
                                       Filter: ((it1.info)::text = 'budget'::text)
                                       Rows Removed by Filter: 112
                                       Buffers: shared hit=1
                     ->  Index Scan using movie_id_movie_companies on public.movie_companies mc  (cost=0.43..0.52 rows=5 width=12) (actual time=0.045..0.057 rows=16.50 loops=2)
                           Output: mc.id, mc.movie_id, mc.company_id, mc.company_type_id, mc.note
                           Index Cond: (mc.movie_id = mi.movie_id)
                           Index Searches: 2
                           Buffers: shared hit=10
               ->  Index Scan using company_type_pkey on public.company_type ct  (cost=0.13..0.15 rows=1 width=4) (actual time=0.001..0.001 rows=1.00 loops=33)
                     Output: ct.id, ct.kind
                     Index Cond: (ct.id = mc.company_type_id)
                     Filter: (((ct.kind)::text = 'production companies'::text) OR ((ct.kind)::text = 'distributors'::text))
                     Index Searches: 33
                     Buffers: shared hit=66
         ->  Index Scan using company_name_pkey on public.company_name cn  (cost=0.42..0.45 rows=1 width=4) (actual time=0.012..0.012 rows=0.30 loops=33)
               Output: cn.id, cn.name, cn.country_code, cn.imdb_id, cn.name_pcode_nf, cn.name_pcode_sf, cn.md5sum
               Index Cond: (cn.id = mc.company_id)
               Filter: ((cn.country_code)::text = '[us]'::text)
               Rows Removed by Filter: 1
               Index Searches: 33
               Buffers: shared hit=132
 Planning:
   Buffers: shared hit=582
 Planning Time: 3.935 ms
 Execution Time: 1.744 ms
(88 rows)


################################################################
# CONFIGURATION: goo_result_size
################################################################

SET
SET
SET
                                                                                                      QUERY PLAN                                                                                                       
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=82395.77..82395.78 rows=1 width=64) (actual time=318.202..318.205 rows=1.00 loops=1)
   Output: min(mi.info), min(t.title)
   Buffers: shared hit=44867 read=18
   ->  Nested Loop  (cost=1.71..82395.76 rows=1 width=59) (actual time=225.795..318.193 rows=10.00 loops=1)
         Output: mi.info, t.title
         Join Filter: (it1.id = mi.info_type_id)
         Rows Removed by Join Filter: 1200
         Buffers: shared hit=44867 read=18
         ->  Seq Scan on public.info_type it1  (cost=0.00..2.41 rows=1 width=4) (actual time=0.010..0.012 rows=1.00 loops=1)
               Output: it1.id, it1.info
               Filter: ((it1.info)::text = 'budget'::text)
               Rows Removed by Filter: 112
               Buffers: shared hit=1
         ->  Nested Loop  (cost=1.71..82393.27 rows=6 width=63) (actual time=225.739..318.141 rows=1210.00 loops=1)
               Output: mi.info, mi.info_type_id, t.title
               Join Filter: (mi.movie_id = t.id)
               Buffers: shared hit=44866 read=18
               ->  Nested Loop  (cost=1.28..82391.30 rows=1 width=29) (actual time=225.717..317.860 rows=10.00 loops=1)
                     Output: mc.movie_id, mi_idx.movie_id, t.title, t.id
                     Inner Unique: true
                     Join Filter: (ct.id = mc.company_type_id)
                     Rows Removed by Join Filter: 5
                     Buffers: shared hit=44636 read=18
                     ->  Nested Loop  (cost=1.28..82390.22 rows=1 width=33) (actual time=225.701..317.833 rows=10.00 loops=1)
                           Output: mc.movie_id, mc.company_type_id, mi_idx.movie_id, t.title, t.id
                           Inner Unique: true
                           Buffers: shared hit=44626 read=18
                           ->  Nested Loop  (cost=0.86..82389.77 rows=1 width=37) (actual time=225.689..317.708 rows=33.00 loops=1)
                                 Output: mc.movie_id, mc.company_type_id, mc.company_id, mi_idx.movie_id, t.title, t.id
                                 Join Filter: (mc.movie_id = t.id)
                                 Buffers: shared hit=44494 read=18
                                 ->  Nested Loop  (cost=0.43..82389.12 rows=1 width=25) (actual time=225.667..317.667 rows=2.00 loops=1)
                                       Output: mi_idx.movie_id, t.title, t.id
                                       Join Filter: (it2.id = mi_idx.info_type_id)
                                       Rows Removed by Join Filter: 2643
                                       Buffers: shared hit=44484 read=18
                                       ->  Seq Scan on public.info_type it2  (cost=0.00..2.41 rows=1 width=4) (actual time=0.006..0.007 rows=1.00 loops=1)
                                             Output: it2.id, it2.info
                                             Filter: ((it2.info)::text = 'bottom 10 rank'::text)
                                             Rows Removed by Filter: 112
                                             Buffers: shared hit=1
                                       ->  Nested Loop  (cost=0.43..82384.95 rows=141 width=29) (actual time=3.915..317.565 rows=2645.00 loops=1)
                                             Output: mi_idx.movie_id, mi_idx.info_type_id, t.title, t.id
                                             Buffers: shared hit=44483 read=18
                                             ->  Seq Scan on public.title t  (cost=0.00..80247.82 rows=258 width=21) (actual time=0.153..302.096 rows=2536.00 loops=1)
                                                   Output: t.id, t.title, t.imdb_index, t.kind_id, t.production_year, t.imdb_id, t.phonetic_code, t.episode_of_id, t.season_nr, t.episode_nr, t.series_years, t.md5sum
                                                   Filter: ((t.production_year > 2000) AND ((t.title ~~ 'Birdemic%'::text) OR (t.title ~~ '%Movie%'::text)))
                                                   Rows Removed by Filter: 2525776
                                                   Buffers: shared hit=35998
                                             ->  Index Scan using movie_id_movie_info_idx on public.movie_info_idx mi_idx  (cost=0.43..8.25 rows=3 width=8) (actual time=0.006..0.006 rows=1.04 loops=2536)
                                                   Output: mi_idx.id, mi_idx.movie_id, mi_idx.info_type_id, mi_idx.info, mi_idx.note
                                                   Index Cond: (mi_idx.movie_id = t.id)
                                                   Index Searches: 2536
                                                   Buffers: shared hit=8485 read=18
                                 ->  Index Scan using movie_id_movie_companies on public.movie_companies mc  (cost=0.43..0.59 rows=5 width=12) (actual time=0.015..0.017 rows=16.50 loops=2)
                                       Output: mc.id, mc.movie_id, mc.company_id, mc.company_type_id, mc.note
                                       Index Cond: (mc.movie_id = mi_idx.movie_id)
                                       Index Searches: 2
                                       Buffers: shared hit=10
                           ->  Index Scan using company_name_pkey on public.company_name cn  (cost=0.42..0.45 rows=1 width=4) (actual time=0.004..0.004 rows=0.30 loops=33)
                                 Output: cn.id, cn.name, cn.country_code, cn.imdb_id, cn.name_pcode_nf, cn.name_pcode_sf, cn.md5sum
                                 Index Cond: (cn.id = mc.company_id)
                                 Filter: ((cn.country_code)::text = '[us]'::text)
                                 Rows Removed by Filter: 1
                                 Index Searches: 33
                                 Buffers: shared hit=132
                     ->  Seq Scan on public.company_type ct  (cost=0.00..1.06 rows=2 width=4) (actual time=0.002..0.002 rows=1.50 loops=10)
                           Output: ct.id, ct.kind
                           Filter: (((ct.kind)::text = 'production companies'::text) OR ((ct.kind)::text = 'distributors'::text))
                           Buffers: shared hit=10
               ->  Index Scan using movie_id_movie_info on public.movie_info mi  (cost=0.43..1.45 rows=42 width=50) (actual time=0.004..0.020 rows=121.00 loops=10)
                     Output: mi.id, mi.movie_id, mi.info_type_id, mi.info, mi.note
                     Index Cond: (mi.movie_id = mc.movie_id)
                     Index Searches: 10
                     Buffers: shared hit=230
 Planning:
   Buffers: shared hit=582
 Planning Time: 1.445 ms
 Execution Time: 318.268 ms
(79 rows)


################################################################
# CONFIGURATION: geqo
################################################################

SET
SET
                                                                                                   QUERY PLAN                                                                                                    
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=26700.51..26700.52 rows=1 width=64) (actual time=1.224..1.226 rows=1.00 loops=1)
   Output: min(mi.info), min(t.title)
   Buffers: shared hit=2857
   ->  Nested Loop  (cost=3848.23..26700.50 rows=1 width=59) (actual time=0.291..1.220 rows=10.00 loops=1)
         Output: mi.info, t.title
         Inner Unique: true
         Buffers: shared hit=2857
         ->  Nested Loop  (cost=3848.09..26699.51 rows=6 width=63) (actual time=0.212..0.738 rows=1210.00 loops=1)
               Output: t.title, mi.info, mi.info_type_id
               Join Filter: (mi.movie_id = t.id)
               Buffers: shared hit=437
               ->  Nested Loop  (cost=3847.66..26697.54 rows=1 width=29) (actual time=0.193..0.414 rows=10.00 loops=1)
                     Output: t.title, t.id, mi_idx.movie_id, mc.movie_id
                     Inner Unique: true
                     Buffers: shared hit=207
                     ->  Nested Loop  (cost=3847.53..26697.37 rows=1 width=33) (actual time=0.186..0.402 rows=10.00 loops=1)
                           Output: t.title, t.id, mi_idx.movie_id, mc.movie_id, mc.company_type_id
                           Inner Unique: true
                           Buffers: shared hit=187
                           ->  Nested Loop  (cost=3847.11..26696.92 rows=1 width=37) (actual time=0.175..0.236 rows=33.00 loops=1)
                                 Output: t.title, t.id, mi_idx.movie_id, mc.movie_id, mc.company_type_id, mc.company_id
                                 Join Filter: (mc.movie_id = t.id)
                                 Buffers: shared hit=55
                                 ->  Nested Loop  (cost=3846.68..26696.27 rows=1 width=25) (actual time=0.156..0.189 rows=2.00 loops=1)
                                       Output: t.title, t.id, mi_idx.movie_id
                                       Inner Unique: true
                                       Buffers: shared hit=45
                                       ->  Nested Loop  (cost=3846.25..19546.36 rows=12213 width=4) (actual time=0.056..0.057 rows=10.00 loops=1)
                                             Output: mi_idx.movie_id
                                             Buffers: shared hit=5
                                             ->  Seq Scan on public.info_type it2  (cost=0.00..2.41 rows=1 width=4) (actual time=0.024..0.024 rows=1.00 loops=1)
                                                   Output: it2.id, it2.info
                                                   Filter: ((it2.info)::text = 'bottom 10 rank'::text)
                                                   Rows Removed by Filter: 112
                                                   Buffers: shared hit=1
                                             ->  Bitmap Heap Scan on public.movie_info_idx mi_idx  (cost=3846.25..16093.86 rows=345009 width=8) (actual time=0.031..0.031 rows=10.00 loops=1)
                                                   Output: mi_idx.id, mi_idx.movie_id, mi_idx.info_type_id, mi_idx.info, mi_idx.note
                                                   Recheck Cond: (it2.id = mi_idx.info_type_id)
                                                   Heap Blocks: exact=1
                                                   Buffers: shared hit=4
                                                   ->  Bitmap Index Scan on info_type_id_movie_info_idx  (cost=0.00..3759.99 rows=345009 width=0) (actual time=0.023..0.023 rows=10.00 loops=1)
                                                         Index Cond: (mi_idx.info_type_id = it2.id)
                                                         Index Searches: 1
                                                         Buffers: shared hit=3
                                       ->  Index Scan using title_pkey on public.title t  (cost=0.43..0.59 rows=1 width=21) (actual time=0.013..0.013 rows=0.20 loops=10)
                                             Output: t.id, t.title, t.imdb_index, t.kind_id, t.production_year, t.imdb_id, t.phonetic_code, t.episode_of_id, t.season_nr, t.episode_nr, t.series_years, t.md5sum
                                             Index Cond: (t.id = mi_idx.movie_id)
                                             Filter: ((t.production_year > 2000) AND ((t.title ~~ 'Birdemic%'::text) OR (t.title ~~ '%Movie%'::text)))
                                             Rows Removed by Filter: 1
                                             Index Searches: 10
                                             Buffers: shared hit=40
                                 ->  Index Scan using movie_id_movie_companies on public.movie_companies mc  (cost=0.43..0.59 rows=5 width=12) (actual time=0.017..0.022 rows=16.50 loops=2)
                                       Output: mc.id, mc.movie_id, mc.company_id, mc.company_type_id, mc.note
                                       Index Cond: (mc.movie_id = mi_idx.movie_id)
                                       Index Searches: 2
                                       Buffers: shared hit=10
                           ->  Index Scan using company_name_pkey on public.company_name cn  (cost=0.42..0.45 rows=1 width=4) (actual time=0.005..0.005 rows=0.30 loops=33)
                                 Output: cn.id, cn.name, cn.country_code, cn.imdb_id, cn.name_pcode_nf, cn.name_pcode_sf, cn.md5sum
                                 Index Cond: (cn.id = mc.company_id)
                                 Filter: ((cn.country_code)::text = '[us]'::text)
                                 Rows Removed by Filter: 1
                                 Index Searches: 33
                                 Buffers: shared hit=132
                     ->  Index Scan using company_type_pkey on public.company_type ct  (cost=0.13..0.15 rows=1 width=4) (actual time=0.001..0.001 rows=1.00 loops=10)
                           Output: ct.id, ct.kind
                           Index Cond: (ct.id = mc.company_type_id)
                           Filter: (((ct.kind)::text = 'production companies'::text) OR ((ct.kind)::text = 'distributors'::text))
                           Index Searches: 10
                           Buffers: shared hit=20
               ->  Index Scan using movie_id_movie_info on public.movie_info mi  (cost=0.43..1.45 rows=42 width=50) (actual time=0.004..0.024 rows=121.00 loops=10)
                     Output: mi.id, mi.movie_id, mi.info_type_id, mi.info, mi.note
                     Index Cond: (mi.movie_id = mc.movie_id)
                     Index Searches: 10
                     Buffers: shared hit=230
         ->  Index Scan using info_type_pkey on public.info_type it1  (cost=0.14..0.16 rows=1 width=4) (actual time=0.000..0.000 rows=0.01 loops=1210)
               Output: it1.id, it1.info
               Index Cond: (it1.id = mi.info_type_id)
               Filter: ((it1.info)::text = 'budget'::text)
               Rows Removed by Filter: 1
               Index Searches: 1210
               Buffers: shared hit=2420
 Planning:
   Buffers: shared hit=582
 Planning Time: 14.651 ms
 Execution Time: 1.316 ms
(85 rows)

