PlannerIMDB — JOB-14B

SELECT MIN(mi_idx.info) AS rating,
       MIN(t.title) AS western_dark_production
FROM job.info_type AS it1,
     job.info_type AS it2,
     job.keyword AS k,
     job.kind_type AS kt,
     job.movie_info AS mi,
     job.movie_info_idx AS mi_idx,
     job.movie_keyword AS mk,
     job.title AS t
WHERE it1.info = 'countries'
  AND it2.info = 'rating'
  AND k.keyword IN ('murder',
                    'murder-in-title')
  AND kt.kind = 'movie'
  AND mi.info IN ('Sweden',
                  'Norway',
                  'Germany',
                  'Denmark',
                  'Swedish',
                  'Denish',
                  'Norwegian',
                  'German',
                  'USA',
                  'American')
  AND mi_idx.info > '6.0'
  AND t.production_year > 2010
  AND (t.title LIKE '%murder%'
       OR t.title LIKE '%Murder%'
       OR t.title LIKE '%Mord%')
  AND kt.id = t.kind_id
  AND t.id = mi.movie_id
  AND t.id = mk.movie_id
  AND t.id = mi_idx.movie_id
  AND mk.movie_id = mi.movie_id
  AND mk.movie_id = mi_idx.movie_id
  AND mi.movie_id = mi_idx.movie_id
  AND k.id = mk.keyword_id
  AND it1.id = mi.info_type_id
  AND it2.id = mi_idx.info_type_id;

Engine Compare

Accuracy chart, rows processed ?
Scan
Scan
Seek
Seek
Join Probe
Join
Sort
Sort
Hash Build
Hash
Aggregate
Agg
Distribute
Dist
Native storage
Estimation Error
Est Err
4,523,953
4.5M
Rank
Estimation Error
Est Err
4,523,955
4.5M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
39,078
39K
Rank
Estimation Error
Est Err
1
1
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
19,867,687
20M
Rank
Estimation Error
Est Err
6,705,516
6.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
25,469,084
25M
Rank
Estimation Error
Est Err
4
4
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
5,305,144
5.3M
Rank
Estimation Error
Est Err
4,598,480
4.6M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
745,752
746K
Rank
Estimation Error
Est Err
2
2
Rank
Estimation Error
Est Err
726,217
726K
Rank
Apache Iceberg
Estimation Error
Est Err
8,691,642
8.7M
Rank
Estimation Error
Est Err
7,328,449
7.3M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,521,930
2.5M
Rank
Estimation Error
Est Err
11
11
Rank
Estimation Error
Est Err
5,768,092
5.8M
Rank
Native storage
Estimation Error
Est Err
801,725
802K
Rank
Estimation Error
Est Err
1,018,760
1M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,057,063
1.1M
Rank
Estimation Error
Est Err
1
1
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
39,093
39K
Rank
Estimation Error
Est Err
39,093
39K
Rank
Estimation Error
Est Err
39,092
39K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
39,092
39K
Rank
Estimation Error
Est Err
1
1
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
97,298
97K
Rank
Estimation Error
Est Err
97,296
97K
Rank
Estimation Error
Est Err
128,822
129K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
116,824
117K
Rank
Estimation Error
Est Err
1
1
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
122
122
Rank
Estimation Error
Est Err
7
7
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
121
121
Rank
Estimation Error
Est Err
17
17
Rank
Estimation Error
Est Err
137
137
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min
       1         1  INNER JOIN HASH ON id = kind_id
       1         1  │└TABLE SCAN kind_type WHERE kind = movie
       1         2  INNER JOIN HASH ON id6 = info_type_id53
       1         1  │└TABLE SCAN info_type WHERE info = countries
       1         2  INNER JOIN HASH ON movie_id52 = movie_id44
       1         2  │└INNER JOIN HASH ON id11 = info_type_id
       1         1   │└TABLE SCAN info_type WHERE info = rating
       1         2   INNER JOIN HASH ON id28 = movie_id44
       1        15   │└INNER JOIN HASH ON id28 = movie_id
      65     19528    │└INNER JOIN HASH ON id16 = keyword_id
       2         1     │└TABLE SCAN keyword WHERE keyword IN(murder,murder - in - title)
 4523930   4523930     TABLE SCAN movie_keyword
    1711        15    TABLE SCAN title WHERE production_year >= 2011 AND title LIKE '%murder%' OR title LIKE '%Murder%' OR title LIKE '%Mord%'
  369267         2   TABLE SCAN movie_info_idx WHERE info > 6.0
  608496         2  TABLE SCAN movie_info WHERE info BETWEEN American AND USA AND info54 IN(American,Denish,Denmark,German,Germany,Norway,Norwegian,Sweden,Swedish,USA)
Native storage
Estimate    Actual  Operator
       -         1  PROJECT a1 AS rating, a2 AS western_dark_production
       -         1  AGGREGATE MIN(info) AS a1, MIN(title) AS a2
       -         4  PROJECT info, title
       -         4  PROJECT info, title
       -         4  INNER JOIN HASH ON tuple(PROJECTION_743.movie_id,PROJECTION_743.movie_id,PROJECTION_743.movie_id,PROJECTION_743.movie_id) = tuple(PROJECTION_722.movie_id,PROJECTION_722.movie_id,PROJECTION_722.id,PROJECTION_722.id)
       -       190  │└PROJECT movie_id AS movie_id_right, id, title
       -       190   PROJECT movie_id, title, id
       -       190   INNER JOIN HASH ON PROJECTION_734.id = PROJECTION_725.movie_id
       -   4523930   │└PROJECT movie_id
       -   4523930    PROJECT movie_id
       -   4523930    INNER JOIN HASH ON PROJECTION_731.keyword_id = PROJECTION_728.id
       -    134170    │└PROJECT id
       -    134170     PROJECT id
       -    134170     TABLE SCAN keyword WHERE TRUE
       -   4523930    PROJECT keyword_id, movie_id
       -   4523930    PROJECT movie_id, keyword_id
       -   4523930    TABLE SCAN movie_keyword
       -       105   PROJECT id, title
       -       105   PROJECT title, id
       -       105   INNER JOIN HASH ON PROJECTION_740.kind_id = PROJECTION_737.id
       -         1   │└PROJECT id AS id_right
       -         1    PROJECT id
       -         1    TABLE SCAN kind_type WHERE kind = 'movie'
       -       455   PROJECT kind_id, title, id AS id_left
       -       455   PROJECT id, title, kind_id
       -       455   TABLE SCAN title WHERE (production_year > 2010) AND (title LIKE '%murder%' OR title LIKE '%Murder%' OR title LIKE '%Mord%')
       -    222323  PROJECT movie_id AS movie_id_left, movie_id AS movie_id_left_2, info
       -    222323  PROJECT movie_id, info, movie_id
       -    222323  INNER JOIN HASH ON PROJECTION_755.movie_id = PROJECTION_746.movie_id
       -   1325361  │└PROJECT movie_id AS movie_id_right
       -   1325361   PROJECT movie_id
       -   1325361   INNER JOIN HASH ON PROJECTION_752.id = PROJECTION_749.info_type_id
       -  14835720   │└PROJECT info_type_id, movie_id
       -  14835720    PROJECT info_type_id, movie_id
       -  14835720    TABLE SCAN movie_info WHERE TRUE
       -         1   PROJECT id
       -         1   PROJECT id
       -         1   TABLE SCAN info_type WHERE info = 'countries'
       -    259848  PROJECT movie_id AS movie_id_left, info
       -    259848  PROJECT info, movie_id
       -    259848  INNER JOIN HASH ON PROJECTION_761.info_type_id = PROJECTION_758.id
       -         1  │└PROJECT id
       -         1   PROJECT id
       -         1   TABLE SCAN info_type WHERE info = 'rating'
       -    373409  PROJECT info_type_id, info, movie_id
       -    373409  PROJECT movie_id, info, info_type_id
       -    373409  TABLE SCAN movie_info_idx WHERE info > '6.0'
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1)
       1         1  PROJECT info, title
       1         1  INNER JOIN HASH ON id = keyword_id
       5         4  │└INNER JOIN HASH ON movie_id = movie_id
       3         2   │└INNER JOIN HASH ON info_type_id = id
       2         1    │└FILTER id <= 110
       2         1     TABLE SCAN info_type WHERE info = 'countries'
     169         2    INNER JOIN HASH ON movie_id = movie_id
     142         4    │└INNER JOIN HASH ON kind_id = id
       1         1     │└TABLE SCAN kind_type WHERE kind = 'movie'
     994         4     INNER JOIN HASH ON id = movie_id
    4885    259848     │└INNER JOIN HASH ON info_type_id = id
       2         1      │└FILTER id >= 99
       2         1       TABLE SCAN info_type WHERE info = 'rating'
  276007    259848      TABLE SCAN movie_info_idx WHERE info > '6.0'
  505662         5     FILTER id BETWEEN 2 AND 2525793
  505662         5     TABLE SCAN title WHERE production_year > 2010 AND (contains(title,'murder') OR contains(title,'Murder') OR contains(title,'Mord'))
 2967144    221547    FILTER movie_id BETWEEN 2 AND 2525793
 2967144    221553    FILTER IN ...
14835720    537349    INNER JOIN HASH ON info = #0
       0        10    │└SCAN MATERIALISED
14835720    537349    TABLE SCAN movie_info WHERE info IN('Sweden','Norway','Germany','Denmark','Swedish','Denish','Norwegian','German','USA','American')
 4523930         4   TABLE SCAN movie_keyword WHERE movie_id <= 2525793
   26834         1  FILTER (keyword = 'murder') OR (keyword = 'murder-in-title')
  134170      4506  TABLE SCAN keyword WHERE keyword IN('murder','murder-in-title')
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT rating, western_dark_production
       1         1  AGGREGATE MIN(info), MIN(title)
   28246        10  DISTRIBUTE GATHER
   28246        10  AGGREGATE MIN(info), MIN(title)
   28246         1  INNER JOIN HASH ON id = kind_id
       2         1  │└DISTRIBUTE GATHER
       2         1   FILTER kind = 'movie'
       7         7   DISTRIBUTE ROUND ROBIN
       7         7   TABLE SCAN kind_type WHERE kind = 'movie'
   98863         1  INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id
   98863      5497  │└DISTRIBUTE GATHER
   98863      5497   INNER JOIN HASH ON id = keyword_id
   26834         1   │└DISTRIBUTE GATHER
   26834         1    FILTER (keyword = 'murder') OR (keyword = 'murder-in-title')
  134170    134170    DISTRIBUTE ROUND ROBIN
  134170    134170    TABLE SCAN keyword WHERE (keyword = 'murder') OR (keyword = 'murder-in-title')
  494319   1406687   INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id
  276007    116588   │└DISTRIBUTE HASH ON movie_id, movie_id
  276007    116588    INNER JOIN HASH ON id = info_type_id
      23         1    │└DISTRIBUTE GATHER
      23         1     FILTER info = 'rating'
     113       113     DISTRIBUTE ROUND ROBIN
     113       113     TABLE SCAN info_type WHERE info = 'rating'
  276007    169117    PROJECT movie_id, movie_id, info_type_id, info
  276007    169117    INNER JOIN HASH ON movie_id = movie_id
  276007    373409    │└DISTRIBUTE HASH ON movie_id
  276007    373409     FILTER info > '6.0'
 1380035   1380035     TABLE SCAN movie_info_idx WHERE (info > '6.0') AND (((info_type_id >= 101) AND (info_type_id <= 101)) AND info_type_id IN 101)
  620402    614251    DISTRIBUTE HASH ON movie_id
  620402    614251    INNER JOIN HASH ON id = info_type_id
      23         1    │└DISTRIBUTE GATHER
      23         1     FILTER info = 'countries'
     113       113     DISTRIBUTE ROUND ROBIN
     113       113     TABLE SCAN info_type WHERE info = 'countries'
 2967144    614251    FILTER info IN('Sweden','Norway','Germany','Denmark','Swedish','Denish','Norwegian','German','USA','American')
14835720   1355825    TABLE SCAN movie_info WHERE (info IN('Sweden','Norway','Germany','Denmark','Swedish','Denish','Norwegian','German','USA','American') AND (((info_type_id >= 8) AND (info_type_id <= 8)) AND info_type_id IN 8)) AND CASE MOD(HASH_REPARTITION movie_id,10) WHEN 0 THEN (((movie_id >= 67) AND (movie_id <= 2525664)) AND TRUE) WHEN 1 THEN (((movie_id >= 63) AND (movie_id <= 2525670)) AND TRUE) WHEN 2 THEN (((movie_id >= 24) AND (movie_id <= 2525642)) AND TRUE) WHEN 3 THEN ((...
 4523930   4523930   DISTRIBUTE HASH ON movie_id, movie_id
 4523930   4523930   TABLE SCAN movie_keyword WHERE CASE MOD(HASH_REPARTITION(movie_id,movie_id),10) WHEN 1 THEN ((((movie_id >= 57) AND (movie_id <= 2525790)) AND ((movie_id >= 57) AND (movie_id <= 2525790))) AND TRUE) WHEN 3 THEN ((((movie_id >= 51) AND (movie_id <= 2525784)) AND ((movie_id >= 51) AND (movie_id <= 2525784))) AND TRUE) WHEN 5 THEN ((((movie_id >= 52) AND (movie_id <= 2525757)) AND ((movie_id >= 52) AND (movie_id <= 2525757))) AND TRUE) WHEN 7 THEN ((((movie_id >= 54) AND ...
  505663       212  FILTER (production_year > 2010) AND ((title LIKE '%murder%' OR title LIKE '%Murder%') OR title LIKE '%Mord%')
 2528312   1297449  TABLE SCAN title WHERE (((production_year > 2010) AND ((title LIKE '%murder%' OR title LIKE '%Murder%') OR title LIKE '%Mord%')) AND (((((id >= 581) AND (id <= 2521880)) AND ((id >= 581) AND (id <= 2521880))) AND ((id >= 581) AND (id <= 2521880))) AND TRUE)) AND (((kind_id >= 1) AND (kind_id <= 1)) AND kind_id IN 1)
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(mi_idx.info), MIN(t.title)
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(mi_idx.info), MIN(t.title)
     349         1  INNER JOIN HASH ON mi.info_type_id = it1.id
     349         1  │└DISTRIBUTE GATHER
 4520000         1   TABLE SCAN info_type WHERE it1.info = 'countries'
     349         1  INNER JOIN HASH ON mi_idx.movie_id = mi.movie_id
     349    706674  │└DISTRIBUTE GATHER
  134000    706674   TABLE SCAN movie_info WHERE mi.info IN('Sweden','Norway','Germany','Denmark','Swedish','Denish','Norwegian','German','USA','American')
     349         1  INNER JOIN HASH ON mi_idx.info_type_id = it2.id
     349         1  │└DISTRIBUTE GATHER
       7         1   TABLE SCAN info_type WHERE it2.info = 'rating'
     349         1  INNER JOIN HASH ON mk.movie_id = mi_idx.movie_id
     349        10  │└DISTRIBUTE GATHER
     112        10   INNER JOIN HASH ON t.kind_id = kt.id
     112         1   │└DISTRIBUTE GATHER
 1380000         1    TABLE SCAN kind_type WHERE kt.kind = 'movie'
     112        11   INNER JOIN HASH ON mk.movie_id = t.id
     112     19528   │└DISTRIBUTE GATHER
     106     19528    INNER JOIN HASH ON mk.keyword_id = k.id
     106         1    │└DISTRIBUTE GATHER
     113         1     TABLE SCAN keyword WHERE k.keyword IN('murder','murder-in-title')
14800000   4519839    TABLE SCAN movie_keyword
     113       129   TABLE SCAN title WHERE (t.production_year IS NOT NULL) AND (t.production_year > 2010L) AND ((contains(t.title,'murder') OR contains(t.title,'Murder')) OR contains(t.title,'Mord'))
 2530000     78498  TABLE SCAN movie_info_idx WHERE mi_idx.info > '6.0'
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info as info) AS Expr1016, MIN(title as title) AS Expr1017
       1         1  FILTER info as info = 'rating'
       1         1  INNER JOIN LOOP ON Bmk1002 = Bmk1002
       1         1  │└TABLE SEEK info_type AS it2
       1         1  INNER JOIN LOOP ON mi_idx.info_type_id = it2.id
       1         1  │└TABLE SEEK info_type AS it2
       1         1  INNER JOIN LOOP ON t.id = mi_idx.movie_id
       1         1  │└TABLE SEEK movie_info_idx AS mi_idx WHERE info as info > '6.0'
       1         6  FILTER kind as kind = 'movie'
       1         8  INNER JOIN LOOP ON Bmk1006 = Bmk1006
       1         8  │└TABLE SEEK kind_type AS kt
       1         8  INNER JOIN LOOP ON t.kind_id = kt.id
       1         8  │└TABLE SEEK kind_type AS kt
       1         8  FILTER title as title LIKE '%murder%' OR title as title LIKE '%Murder%' OR title as title LIKE '%Mord%'
       1       781  INNER JOIN LOOP ON Bmk1014 = Bmk1014
       0       781  │└TABLE SEEK title AS t WHERE production_year as production_year > 2010
       6     12774  PROJECT BmkToPage Bmk1014 AS Expr1071
       6     12774  INNER JOIN LOOP ON mk.movie_id = t.id
       1     12774  │└TABLE SEEK title AS t
       6     12774  FILTER info as info = 'American' OR info as info = 'Denish' OR info as info = 'Denmark' OR info as info = 'German' OR info as info = 'Germany' OR info as info = 'Norway' OR info as info = 'Norwegian' OR info as info = 'Sweden' OR info as info = 'Swedish' OR info as info = 'USA'
     154     22333  INNER JOIN LOOP ON mi.movie_id = mi.movie_id AND Uniq1009 = Uniq1009
       1     22333  │└TABLE SEEK movie_info AS mi
     154     22333  INNER JOIN LOOP ON it1.id = mi.info_type_id AND mk.movie_id = mi.movie_id
       1     22333  │└TABLE SEEK movie_info AS mi
     181     19528  INNER JOIN LOOP ON info as info = 'countries'
       1         1  │└MATERIALISE AS m31
       1         1   TABLE SCAN info_type AS it1 WHERE info as info = 'countries'
     181     19528  INNER JOIN LOOP ON Bmk1012 = Bmk1012
       1     19528  │└TABLE SEEK movie_keyword AS mk
     181     19528  INNER JOIN LOOP ON k.id = mk.keyword_id
      90     19528  │└TABLE SEEK movie_keyword AS mk
       2         1  TABLE SCAN keyword AS k WHERE keyword as keyword = 'murder' OR keyword as keyword = 'murder-in-title'
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS rating, min_36 AS western_dark_production
       1         1  AGGREGATE MIN(min_37) AS min, MIN(min_38) AS min_36
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(info_21) AS min_37, MIN(title) AS min_38
       -         1  INNER JOIN HASH ON kind_id = id_9
       7         1  │└DISTRIBUTE GATHER
       7         1   PROJECT id AS id_9
       7         1   FILTER kind = 'movie'
       7         1   TABLE SCAN kind_type
       -         1  INNER JOIN HASH ON movie_id = id_31
  143132       106  │└DISTRIBUTE HASH ON id_31
  143132       106   PROJECT id AS id_31, title, kind_id
  143132       106   FILTER (production_year > 2010) AND ((title LIKE '%murder%') OR (title LIKE '%Murder%') OR (title LIKE '%Mord%'))
  143132       106   TABLE SCAN title
       -         1  INNER JOIN HASH ON keyword_id = id_5
  134170         1  │└DISTRIBUTE GATHER
  134170         1   PROJECT id AS id_5
  134170         1   FILTER keyword IN('murder','murder-in-title')
  134170         1   TABLE SCAN keyword
       -         1  INNER JOIN HASH ON movie_id = movie_id_27
 4523930        10  │└DISTRIBUTE HASH ON movie_id_27
 4523930        10   PROJECT movie_id AS movie_id_27, keyword_id
 4523930        10   TABLE SCAN movie_keyword
       -         1  INNER JOIN HASH ON info_type_id_20 = id_0
     113         1  │└DISTRIBUTE GATHER
     113         1   PROJECT id AS id_0
     113         1   FILTER info = 'rating'
     113         1   TABLE SCAN info_type
       -         1  INNER JOIN HASH ON movie_id = movie_id_19
 1380035         1  │└DISTRIBUTE HASH ON movie_id_19
 1380035         1   PROJECT movie_id AS movie_id_19, info_type_id AS info_type_id_20, info AS info_21
 1380035         1   FILTER info > '6.0'
 1380035         1   TABLE SCAN movie_info_idx
       -         1  INNER JOIN HASH ON info_type_id = id
     113         1  │└DISTRIBUTE GATHER
     113         1   FILTER info = 'countries'
     113         1   TABLE SCAN info_type
13352148         1  FILTER info IN('American','Denish','Denmark','German','Germany','Norway','Norwegian','Sweden','Swedish','USA')
13352148         1  TABLE SCAN movie_info
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info), MIN(title)
       1         1  INNER JOIN LOOP ON id = kind_id
       1         2  │└INNER JOIN LOOP ON id = info_type_id
       1         3   │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
       1         8    │└INNER JOIN LOOP ON id = info_type_id
       1         8     │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
       1        15      │└INNER JOIN LOOP ON id = movie_id
      67     19528       │└INNER JOIN LOOP ON keyword_id = id
       2         1        │└TABLE SEEK keyword AS k
     305     19528        TABLE SEEK movie_keyword AS mk
   19528     19528       TABLE SEEK title AS t WHERE (t.production_year > 2010) AND ((t.title LIKE '%murder%') OR (t.title LIKE '%Murder%') OR (t.title LIKE '%Mord%'))
      30        15      TABLE SEEK movie_info AS mi WHERE mi.info IN('Sweden','Norway','Germany','Denmark','Swedish','Denish','Norwegian','German','USA','American')
       8         8     TABLE SEEK info_type AS it1 WHERE it1.info = 'countries'
       8         8    TABLE SEEK movie_info_idx AS mi_idx WHERE mi_idx.info > '6.0'
       3         3   TABLE SEEK info_type AS it2 WHERE it2.info = 'rating'
       2         2  TABLE SEEK kind_type AS kt WHERE kt.kind = 'movie'