PlannerIMDB — JOB-14C

SELECT MIN(mi_idx.info) AS rating,
       MIN(t.title) AS north_european_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 IS NOT NULL
  AND k.keyword IN ('murder',
                    'murder-in-title',
                    'blood',
                    'violence')
  AND kt.kind IN ('movie',
                  'episode')
  AND mi.info IN ('Sweden',
                  'Norway',
                  'Germany',
                  'Denmark',
                  'Swedish',
                  'Danish',
                  'Norwegian',
                  'German',
                  'USA',
                  'American')
  AND mi_idx.info < '8.5'
  AND t.production_year > 2005
  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,536,634
4.5M
Rank
Estimation Error
Est Err
4,560,642
4.6M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
105,075
105K
Rank
Estimation Error
Est Err
4,115
4.1K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
21,844,383
22M
Rank
Estimation Error
Est Err
0
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Estimation Error
Est Err
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
7,492,920
7.5M
Rank
Estimation Error
Est Err
7,909,296
7.9M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,678,620
1.7M
Rank
Estimation Error
Est Err
4,116
4.1K
Rank
Estimation Error
Est Err
817,111
817K
Rank
Apache Iceberg
Estimation Error
Est Err
9,922,505
9.9M
Rank
Estimation Error
Est Err
9,717,727
9.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,513,696
4.5M
Rank
Estimation Error
Est Err
4,125
4.1K
Rank
Estimation Error
Est Err
6,844,441
6.8M
Rank
Native storage
Estimation Error
Est Err
1,256,075
1.3M
Rank
Estimation Error
Est Err
1,384,370
1.4M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,178,333
2.2M
Rank
Estimation Error
Est Err
4,115
4.1K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
102,772
103K
Rank
Estimation Error
Est Err
102,770
103K
Rank
Estimation Error
Est Err
118,450
118K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
128,695
129K
Rank
Estimation Error
Est Err
4,115
4.1K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
243,411
243K
Rank
Estimation Error
Est Err
243,407
243K
Rank
Estimation Error
Est Err
297,848
298K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
280,498
280K
Rank
Estimation Error
Est Err
4,115
4.1K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
1,088,200
1.1M
Rank
Estimation Error
Est Err
113,675
114K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,128,490
1.1M
Rank
Estimation Error
Est Err
4,131
4.1K
Rank
Estimation Error
Est Err
1,073,001
1.1M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min
       3      4115  INNER JOIN HASH ON id = info_type_id53
       1         1  │└TABLE SCAN info_type WHERE info = rating
       6      4115  INNER JOIN HASH ON movie_id44 = movie_id52
       4      5316  │└INNER JOIN HASH ON id6 = info_type_id
       1         1   │└TABLE SCAN info_type WHERE info = countries
       5      5833   INNER JOIN HASH ON id28 = movie_id44
      18      8073   │└INNER JOIN HASH ON id11 = kind_id
       2         2    │└TABLE SCAN kind_type WHERE kind IN(episode,movie)
      56      8408    INNER JOIN HASH ON id28 = movie_id
     129     37091    │└INNER JOIN HASH ON id16 = keyword_id
       4         3     │└TABLE SCAN keyword WHERE keyword IN(blood,murder,murder - in - title,violence)
 4523930   4523930     TABLE SCAN movie_keyword
 1049348      6099    TABLE SCAN title WHERE production_year >= 2006
  622984      4071   TABLE SCAN movie_info WHERE info BETWEEN American AND USA AND info46 IN(American,Danish,Denmark,German,Germany,Norway,Norwegian,Sweden,Swedish,USA)
 1342299      2527  TABLE SCAN movie_info_idx WHERE info < 8.5
Native storage
Estimate    Actual  Operator
       -         ∞  PROJECT a1 AS rating, a2 AS north_european_dark_production
       -         ∞  AGGREGATE MIN(info) AS a1, MIN(title) AS a2
       -         ∞  PROJECT info, title
       -         ∞  PROJECT info, title
       -         ∞  INNER JOIN HASH ON tuple(PROJECTION_790.movie_id,PROJECTION_790.movie_id,PROJECTION_790.movie_id,PROJECTION_790.movie_id) = tuple(PROJECTION_769.movie_id,PROJECTION_769.movie_id,PROJECTION_769.id,PROJECTION_769.id)
       -         ∞  │└PROJECT movie_id AS movie_id_right, id, title
       -         ∞   PROJECT movie_id, title, id
       -         ∞   INNER JOIN HASH ON PROJECTION_775.kind_id = PROJECTION_772.id
       -         ∞   │└PROJECT id AS id_right
       -         ∞    FILTER (1 AND in(kind,__set_String_5846669653831418617_830301282961973411)) AS a37
       -         7    TABLE SCAN kind_type WHERE TRUE
       -         ∞   PROJECT kind_id, movie_id, title, id_left
       -         ∞   PROJECT movie_id, title, id, kind_id
       -         ∞   INNER JOIN HASH ON PROJECTION_781.keyword_id = PROJECTION_778.id
       -         ∞   │└PROJECT id AS id_right
       -         ∞    FILTER (1 AND in(keyword,__set_String_4480434380909935003_15502415416634548319)) AS a33
       -    134170    TABLE SCAN keyword WHERE TRUE
       -   1253091   PROJECT keyword_id, movie_id, title, id AS id_left, kind_id
       -   1253091   PROJECT movie_id, keyword_id, title, id, kind_id
       -   1253091   INNER JOIN HASH ON PROJECTION_787.movie_id = PROJECTION_784.id
       -   1012920   │└PROJECT id, title, kind_id
       -   1012920    FILTER (1 AND production_year > 2005_UInt16) AS a29
       -   1012920    TABLE SCAN title WHERE production_year > 2005
       -   4523930   PROJECT movie_id, keyword_id
       -   4523930   PROJECT movie_id, keyword_id
       -   4523930   TABLE SCAN movie_keyword
       -         ∞  PROJECT movie_id AS movie_id_left, movie_id AS movie_id_left_2, info
       -         ∞  PROJECT movie_id, info, movie_id
       -         ∞  INNER JOIN HASH ON PROJECTION_802.movie_id = PROJECTION_793.movie_id
       -         ∞  │└PROJECT movie_id AS movie_id_right
       -         ∞   PROJECT movie_id
       -         ∞   INNER JOIN HASH ON PROJECTION_799.id = PROJECTION_796.info_type_id
       -         ∞   │└PROJECT info_type_id, movie_id
       -         ∞    FILTER (1 AND in(info,__set_String_17550717767980812251_7757341293055325551)) AS a22
       -  14835720    TABLE SCAN movie_info WHERE TRUE
       -         1   PROJECT id
       -         1   FILTER (1 AND info = 'countries'_String) AS a18
       -         1   TABLE SCAN info_type WHERE info = 'countries'
       -    454230  PROJECT movie_id AS movie_id_left, info
       -    454230  PROJECT info, movie_id
       -    454230  INNER JOIN HASH ON PROJECTION_808.info_type_id = PROJECTION_805.id
       -         1  │└PROJECT id
       -         1   FILTER (1 AND info = 'rating'_String) AS a13
       -         1   TABLE SCAN info_type WHERE info = 'rating'
       -   1337634  PROJECT info_type_id, info, movie_id
       -   1337634  FILTER (1 AND info < '8.5'_String) AS a9
       -   1337634  TABLE SCAN movie_info_idx WHERE info < '8.5'
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1)
       0      4115  PROJECT info, title
       0      4115  INNER JOIN HASH ON id = keyword_id
       5    460150  │└INNER JOIN HASH ON movie_id = movie_id
       3     44414   │└INNER JOIN HASH ON info_type_id = id
       2         1    │└FILTER id <= 110
       2         1     TABLE SCAN info_type WHERE info = 'countries'
     169     44414    INNER JOIN HASH ON movie_id = movie_id
     142    106971    │└INNER JOIN HASH ON kind_id = id
       1         2     │└FILTER (kind = 'movie') OR (kind = 'episode')
       7         7      TABLE SCAN kind_type WHERE kind IN('movie','episode')
     994    140455     INNER JOIN HASH ON id = movie_id
    4885    454230     │└INNER JOIN HASH ON info_type_id = id
       2         1      │└FILTER id >= 99
       2         1       TABLE SCAN info_type WHERE info = 'rating'
  276007    454230      TABLE SCAN movie_info_idx WHERE info < '8.5'
  505662    143661     FILTER id BETWEEN 2 AND 2525793
  505662    143662     TABLE SCAN title WHERE production_year > 2005
 2967144     46128    FILTER movie_id BETWEEN 2 AND 2525793
 2967144     46128    FILTER IN ...
14835720     91217    INNER JOIN HASH ON info = #0
       0        10    │└SCAN MATERIALISED
14835720     91217    TABLE SCAN movie_info WHERE info IN('Sweden','Norway','Germany','Denmark','Swedish','Danish','Norwegian','German','USA','American')
 4523930    432812   TABLE SCAN movie_keyword WHERE movie_id <= 2525793
    5366         3  FILTER (keyword = 'murder') OR (keyword = 'murder-in-title') OR (keyword = 'blood') OR (keyword = 'violence')
   26834    134135  TABLE SCAN keyword WHERE keyword IN('murder','murder-in-title','blood','violence') AND (keyword IS NOT NULL)
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT rating, north_european_dark_production
       1         1  AGGREGATE MIN(info), MIN(title)
   28246        10  DISTRIBUTE GATHER
   28246        10  AGGREGATE MIN(info), MIN(title)
   28246      4115  INNER JOIN HASH ON id = kind_id
       2         2  │└DISTRIBUTE GATHER
       2         2   FILTER (kind = 'movie') OR (kind = 'episode')
       7         7   DISTRIBUTE ROUND ROBIN
       7         7   TABLE SCAN kind_type WHERE (kind = 'movie') OR (kind = 'episode')
   98863      5131  INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id
   98863     20967  │└DISTRIBUTE GATHER
   98863     20967   INNER JOIN HASH ON id = keyword_id
   26834         3   │└DISTRIBUTE GATHER
   26834         3    FILTER keyword IS NOT NULL AND keyword IN('murder','murder-in-title','blood','violence')
  134170    134170    DISTRIBUTE ROUND ROBIN
  134170    134170    TABLE SCAN keyword WHERE keyword IS NOT NULL AND keyword IN('murder','murder-in-title','blood','violence')
  494319   2302523   INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id
  276007    213239   │└DISTRIBUTE HASH ON movie_id, movie_id
  276007    213239    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    629486    PROJECT movie_id, movie_id, info_type_id, info
  276007    629486    INNER JOIN HASH ON movie_id = movie_id
  276007   1337634    │└DISTRIBUTE HASH ON movie_id
  276007   1337634     FILTER info < '8.5'
 1380035   1380035     TABLE SCAN movie_info_idx WHERE (info < '8.5') 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','Danish','Norwegian','German','USA','American')
14835720   1355825    TABLE SCAN movie_info WHERE (info IN('Sweden','Norway','Germany','Denmark','Swedish','Danish','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 <= 2525666)) AND TRUE) WHEN 1 THEN (((movie_id >= 63) AND (movie_id <= 2525670)) AND TRUE) WHEN 2 THEN (((movie_id >= 24) AND (movie_id <= 2525791)) 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 <= 2525792)) AND ((movie_id >= 52) AND (movie_id <= 2525792))) AND TRUE) WHEN 7 THEN ((((movie_id >= 24) AND ...
  252832   1012920  FILTER production_year > 2005
 2528312   2528312  TABLE SCAN title WHERE ((production_year > 2005) AND (((((id >= 581) AND (id <= 2525471)) AND ((id >= 581) AND (id <= 2525471))) AND ((id >= 581) AND (id <= 2525471))) AND TRUE)) AND (((kind_id >= 1) AND (kind_id <= 7)) AND kind_id IN(1,7))
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)
     579      4115  INNER JOIN HASH ON mi.movie_id = mk.movie_id
     579     37091  │└DISTRIBUTE GATHER
     579     37091   INNER JOIN HASH ON mk.keyword_id = k.id
     579         3   │└DISTRIBUTE GATHER
       7         3    TABLE SCAN keyword WHERE k.keyword IN('murder','murder-in-title','blood','violence')
 4520000   4519843   TABLE SCAN movie_keyword
     579     44414  INNER JOIN HASH ON mi_idx.info_type_id = it2.id
     579         1  │└DISTRIBUTE GATHER
 2530000         1   TABLE SCAN info_type WHERE it2.info = 'rating'
     579    132774  INNER JOIN HASH ON mi.movie_id = mi_idx.movie_id
     579    165761  │└DISTRIBUTE GATHER
     186    165761   INNER JOIN HASH ON t.kind_id = kt.id
     186         2   │└DISTRIBUTE GATHER
 1380000         2    TABLE SCAN kind_type WHERE kt.kind IN('movie','episode')
     186    239195   INNER JOIN HASH ON mi.movie_id = t.id
     186    614251   │└DISTRIBUTE GATHER
     176    614251    INNER JOIN HASH ON it1.id = mi.info_type_id
     176         1    │└DISTRIBUTE GATHER
     113         1     TABLE SCAN info_type WHERE it1.info = 'countries'
14800000    628871    TABLE SCAN movie_info WHERE mi.info IN('Sweden','Norway','Germany','Denmark','Swedish','Danish','Norwegian','German','USA','American')
     113   1010381   TABLE SCAN title WHERE (t.production_year IS NOT NULL) AND (t.production_year > 2005L)
  134000   1333818  TABLE SCAN movie_info_idx WHERE mi_idx.info < '8.5'
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info as info) AS Expr1016, MIN(title as title) AS Expr1017
       1      4115  FILTER info as info = 'rating'
       4     12339  INNER JOIN LOOP ON Bmk1002 = Bmk1002
       1     12339  │└TABLE SEEK info_type AS it2
       4     12339  INNER JOIN LOOP ON mi_idx.info_type_id = it2.id
       1     12339  │└TABLE SEEK info_type AS it2
       4     12339  INNER JOIN LOOP ON t.id = mi_idx.movie_id
       2     12339  │└TABLE SEEK movie_info_idx AS mi_idx WHERE info as info < '8.5'
       1      5316  FILTER kind as kind = 'episode' OR kind as kind = 'movie'
       5      6566  INNER JOIN LOOP ON Bmk1006 = Bmk1006
       1      6566  │└TABLE SEEK kind_type AS kt
       5      6566  INNER JOIN LOOP ON t.kind_id = kt.id
       1      6566  │└TABLE SEEK kind_type AS kt
       5      6566  INNER JOIN LOOP ON Bmk1014 = Bmk1014
       0      6566  │└TABLE SEEK title AS t WHERE production_year as production_year > 2005
      14     23916  PROJECT BmkToPage Bmk1014 AS Expr1245
      14     23916  INNER JOIN LOOP ON mk.movie_id = t.id
       1     23916  │└TABLE SEEK title AS t
      14     23916  FILTER info as info = 'American' OR info as info = 'Danish' 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'
     308     44297  INNER JOIN LOOP ON mi.movie_id = mi.movie_id AND Uniq1009 = Uniq1009
       1     44297  │└TABLE SEEK movie_info AS mi
     308     44297  INNER JOIN LOOP ON it1.id = mi.info_type_id AND mk.movie_id = mi.movie_id
       1     44297  │└TABLE SEEK movie_info AS mi
     362     37091  INNER JOIN LOOP ON info as info = 'countries'
       1         1  │└MATERIALISE AS m30
       1         1   TABLE SCAN info_type AS it1 WHERE info as info = 'countries'
     362     37091  INNER JOIN LOOP ON Bmk1012 = Bmk1012
       1     37091  │└TABLE SEEK movie_keyword AS mk
     362     37091  INNER JOIN LOOP ON k.id = mk.keyword_id
      90     37091  │└TABLE SEEK movie_keyword AS mk
       4         3  TABLE SCAN keyword AS k WHERE keyword as keyword = 'blood' OR keyword as keyword = 'murder' OR keyword as keyword = 'murder-in-title' OR keyword as keyword = 'violence'
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS rating, min_36 AS north_european_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
       -      4115  INNER JOIN HASH ON kind_id = id_9
       7         2  │└DISTRIBUTE GATHER
       7         2   PROJECT id AS id_9
       7         2   FILTER kind IN('episode','movie')
       7         2   TABLE SCAN kind_type
       -      5129  INNER JOIN HASH ON movie_id = id_31
  247389   1012688  │└DISTRIBUTE HASH ON id_31
  247389   1012688   PROJECT id AS id_31, title, kind_id
  247389   1012688   FILTER production_year > 2005
  247389   1012688   TABLE SCAN title
       -     20967  INNER JOIN HASH ON keyword_id = id_5
  134170         3  │└DISTRIBUTE GATHER
  134170         3   PROJECT id AS id_5
  134170         3   FILTER keyword IN('blood','murder','murder-in-title','violence')
  134170         3   TABLE SCAN keyword
       -     20967  INNER JOIN HASH ON movie_id = movie_id_27
 4523930     37091  │└DISTRIBUTE HASH ON movie_id_27
 4523930     37091   PROJECT movie_id AS movie_id_27, keyword_id
 4523930     37091   TABLE SCAN movie_keyword
       -     15215  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
       -     15215  INNER JOIN HASH ON movie_id = movie_id_19
 1380035     23199  │└DISTRIBUTE HASH ON movie_id_19
 1380035     23199   PROJECT movie_id AS movie_id_19, info_type_id AS info_type_id_20, info AS info_21
 1380035     23199   FILTER info < '8.5'
 1380035     23199   TABLE SCAN movie_info_idx
       -     15215  INNER JOIN HASH ON info_type_id = id
     113         1  │└DISTRIBUTE GATHER
     113         1   FILTER info = 'countries'
     113         1   TABLE SCAN info_type
13352148     15215  FILTER info IN('American','Danish','Denmark','German','Germany','Norway','Norwegian','Sweden','Swedish','USA')
13352148     15215  TABLE SCAN movie_info
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info), MIN(title)
       1      4115  INNER JOIN LOOP ON id = info_type_id
       1      4709  │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
       1      5949   │└INNER JOIN LOOP ON id = info_type_id
      43     17891    │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
      15      8073     │└INNER JOIN HASH ON kind_id = id
       2         2      │└TABLE SCAN kind_type AS kt WHERE kt.kind IN('movie','episode')
      53      9739      INNER JOIN LOOP ON id = movie_id
     135     37091      │└INNER JOIN LOOP ON keyword_id = id
       4         3       │└TABLE SEEK keyword AS k
     915     37091       TABLE SEEK movie_keyword AS mk
   37091     37091      TABLE SEEK title AS t WHERE t.production_year > 2005
   24219     17922     TABLE SEEK movie_info_idx AS mi_idx WHERE mi_idx.info < '8.5'
       5         5    TABLE SEEK info_type AS it2 WHERE it2.info = 'rating'
   11898      5949   TABLE SEEK movie_info AS mi WHERE mi.info IN('Sweden','Norway','Germany','Denmark','Swedish','Danish','Norwegian','German','USA','American')
    4709      4709  TABLE SEEK info_type AS it1 WHERE it1.info = 'countries'