PlannerIMDB — JOB-2A

SELECT MIN(t.title) AS movie_title
FROM job.company_name AS cn,
     job.keyword AS k,
     job.movie_companies AS mc,
     job.movie_keyword AS mk,
     job.title AS t
WHERE cn.country_code ='[de]'
  AND k.keyword ='character-name-in-title'
  AND cn.id = mc.company_id
  AND mc.movie_id = t.id
  AND t.id = mk.movie_id
  AND mk.keyword_id = k.id
  AND mc.movie_id = mk.movie_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
9,663,679
9.7M
Rank
Estimation Error
Est Err
9,669,205
9.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
346,778
347K
Rank
Estimation Error
Est Err
7,834
7.8K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
9,661,372
9.7M
Rank
Estimation Error
Est Err
7,094,082
7.1M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,692,809
2.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
9,650,854
9.7M
Rank
Estimation Error
Est Err
9,789,377
9.8M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
241,754
242K
Rank
Estimation Error
Est Err
7,835
7.8K
Rank
Estimation Error
Est Err
93,457
93K
Rank
Apache Iceberg
Estimation Error
Est Err
10,030,538
10M
Rank
Estimation Error
Est Err
11,769,776
12M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,272,205
2.3M
Rank
Estimation Error
Est Err
7,844
7.8K
Rank
Estimation Error
Est Err
7,352,164
7.4M
Rank
Native storage
Estimation Error
Est Err
232,240
232K
Rank
Estimation Error
Est Err
233,060
233K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
346,776
347K
Rank
Estimation Error
Est Err
7,834
7.8K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
346,759
347K
Rank
Estimation Error
Est Err
346,759
347K
Rank
Estimation Error
Est Err
346,778
347K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
346,778
347K
Rank
Estimation Error
Est Err
7,834
7.8K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
397,975
398K
Rank
Estimation Error
Est Err
396,452
396K
Rank
Estimation Error
Est Err
404,286
404K
Rank
Estimation Error
Est Err
7,834
7.8K
Rank
Estimation Error
Est Err
545,004
545K
Rank
Estimation Error
Est Err
7,834
7.8K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
2,720,153
2.7M
Rank
Estimation Error
Est Err
31,336
31K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,726,473
2.7M
Rank
Estimation Error
Est Err
7,850
7.9K
Rank
Estimation Error
Est Err
2,718,656
2.7M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min
      10      7834  INNER JOIN HASH ON movie_id14 = id31
       8      7834  │└INNER JOIN HASH ON id21 = company_id
     284    148552   │└INNER JOIN HASH ON movie_id14 = movie_id
      32     41840    │└INNER JOIN HASH ON keyword_id = id
       1         1     │└TABLE SCAN keyword WHERE keyword = character - name - in - title
 4523930   4523930     TABLE SCAN movie_keyword
 2609129   2609129    TABLE SCAN movie_companies
    7343      2307   TABLE SCAN company_name WHERE country_code = de
 2528312   2528312  TABLE SCAN title
Native storage
Estimate    Actual  Operator
       -         1  PROJECT a1 AS movie_title
       -         1  AGGREGATE MIN(title) AS a1
       -         0  PROJECT title
       -         0  PROJECT title
       -         0  INNER JOIN HASH ON tuple(PROJECTION_4064.movie_id,PROJECTION_4064.id) = tuple(PROJECTION_4055.movie_id,PROJECTION_4055.movie_id)
       -         0  │└PROJECT movie_id AS movie_id_right
       -         0   PROJECT movie_id
       -         0   INNER JOIN HASH ON PROJECTION_4061.id = PROJECTION_4058.company_id
       -   2609129   │└PROJECT company_id, movie_id
       -   2609129    PROJECT company_id, movie_id
       -   2609129    TABLE SCAN movie_companies
       -         0   PROJECT id
       -         0   PROJECT id
       -         0   TABLE SCAN company_name WHERE country_code = 'de'
       -     41840  PROJECT movie_id AS movie_id_left, id, title
       -     41840  PROJECT movie_id, title, id
       -     41840  INNER JOIN HASH ON PROJECTION_4076.id = PROJECTION_4067.movie_id
       -     41840  │└PROJECT movie_id
       -     41840   PROJECT movie_id
       -     41840   INNER JOIN HASH ON PROJECTION_4073.keyword_id = PROJECTION_4070.id
       -         1   │└PROJECT id
       -         1    PROJECT id
       -         1    TABLE SCAN keyword WHERE keyword = 'character-name-in-title'
       -   4523930   PROJECT keyword_id, movie_id
       -   4523930   PROJECT movie_id, keyword_id
       -   4523930   TABLE SCAN movie_keyword
       -   2528312  PROJECT id, title
       -   2528312  PROJECT title, id
       -   2528312  TABLE SCAN title
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0)
       0      7834  PROJECT title
       0      7834  INNER JOIN HASH ON id = movie_id
       0      7834  │└INNER JOIN HASH ON id = company_id
      72    148552   │└INNER JOIN HASH ON movie_id = movie_id
      69     41838    │└INNER JOIN HASH ON keyword_id = id
       2         1     │└TABLE SCAN keyword WHERE keyword = 'character-name-in-title'
 4523930     41838     TABLE SCAN movie_keyword WHERE movie_id <= 2525745
 2609129    173613    TABLE SCAN movie_companies
    1644      9775   TABLE SCAN company_name WHERE country_code = 'de'
 2528312      7013  TABLE SCAN title WHERE id >= 2 AND id <= 2525745
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT movie_title
       1         1  AGGREGATE MIN(title)
  186916        10  DISTRIBUTE GATHER
  186916        10  AGGREGATE MIN(title)
  186916      7834  INNER JOIN HASH ON movie_id = id AND movie_id = id
  186916      7834  │└DISTRIBUTE HASH ON movie_id, movie_id
  186916      7834   INNER JOIN HASH ON id = keyword_id
   26834         1   │└DISTRIBUTE GATHER
   26834         1    FILTER keyword = 'character-name-in-title'
  134170    134170    DISTRIBUTE ROUND ROBIN
  134170    134170    TABLE SCAN keyword WHERE keyword = 'character-name-in-title'
  934584   2108405   INNER JOIN HASH ON movie_id = movie_id
  521832    148132   │└DISTRIBUTE HASH ON movie_id
  521832    148132    INNER JOIN HASH ON id = company_id
   47000      9775    │└DISTRIBUTE GATHER
   47000      9775     FILTER country_code = 'de'
  234997    234997     TABLE SCAN company_name WHERE country_code = 'de'
 2609129   2609129    TABLE SCAN movie_companies WHERE ((company_id >= 30) AND (company_id <= 234990)) AND TRUE
 4523930   4523930   DISTRIBUTE HASH ON movie_id
 4523930   4523930   TABLE SCAN movie_keyword WHERE CASE MOD(HASH_REPARTITION movie_id,10) WHEN 0 THEN (((movie_id >= 887) AND (movie_id <= 2525617)) AND TRUE) WHEN 1 THEN (((movie_id >= 619) AND (movie_id <= 2525504)) AND TRUE) WHEN 2 THEN (((movie_id >= 611) AND (movie_id <= 2525502)) AND TRUE) WHEN 3 THEN (((movie_id >= 677) AND (movie_id <= 2525483)) AND TRUE) WHEN 4 THEN (((movie_id >= 669) AND (movie_id <= 2525488)) AND TRUE) WHEN 5 THEN (((movie_id >= 819) AND (movie_id <= 2525499))...
 2528312   2528312  DISTRIBUTE HASH ON id, id
 2528312   2528312  TABLE SCAN title WHERE CASE MOD(HASH_REPARTITION(id,id),10) WHEN 1 THEN ((((id >= 11166) AND (id <= 2525432)) AND ((id >= 11166) AND (id <= 2525432))) AND TRUE) WHEN 3 THEN ((((id >= 11165) AND (id <= 2524553)) AND ((id >= 11165) AND (id <= 2524553))) AND TRUE) WHEN 5 THEN ((((id >= 37759) AND (id <= 2522949)) AND ((id >= 37759) AND (id <= 2522949))) AND TRUE) WHEN 7 THEN ((((id >= 37734) AND (id <= 2522095)) AND ((id >= 37734) AND (id <= 2522095))) AND TRUE) WHEN 9 THEN (...
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(t.title)
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(t.title)
     199      7834  INNER JOIN HASH ON mc.company_id = cn.id
     199      9775  │└DISTRIBUTE GATHER
 4520000      9775   TABLE SCAN company_name WHERE (cn.country_code IS NOT NULL) AND (cn.country_code = 'de')
     192    148299  INNER JOIN HASH ON mk.movie_id = mc.movie_id
     192     41840  │└DISTRIBUTE GATHER
      75     41840   INNER JOIN HASH ON mk.movie_id = t.id
      75     41840   │└DISTRIBUTE GATHER
      71     41840    INNER JOIN HASH ON mk.keyword_id = k.id
      71         1    │└DISTRIBUTE GATHER
  235000         1     TABLE SCAN keyword WHERE k.keyword = 'character-name-in-title'
 2610000   4519861    TABLE SCAN movie_keyword
 2530000   2520276   TABLE SCAN title
  134000   2600941  TABLE SCAN movie_companies
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(title as title) AS Expr1010
     151      7834  INNER JOIN LOOP ON Bmk1008 = Bmk1008
       1      7834  │└TABLE SEEK title AS t
     151      7834  SORT Expr1019
     151      7834  PROJECT BmkToPage Bmk1008 AS Expr1019
     151      7834  INNER JOIN LOOP ON mk.movie_id = t.id
       1      7834  │└TABLE SEEK title AS t
     151      7834  INNER JOIN HASH ON cn.id = mc.company_id
     899    148552  │└INNER JOIN LOOP ON Bmk1004 = Bmk1004
       1    148552   │└TABLE SEEK movie_companies AS mc
     899    148552   PROJECT BmkToPage Bmk1004 AS Expr1023
     899    148552   INNER JOIN LOOP ON mk.movie_id = mc.movie_id
       9    148552   │└TABLE SEEK movie_companies AS mc
      90     41840   INNER JOIN LOOP ON Bmk1006 = Bmk1006
       1     41840   │└TABLE SEEK movie_keyword AS mk
      90     41840   INNER JOIN LOOP ON k.id = mk.keyword_id
      90     41840   │└TABLE SEEK movie_keyword AS mk
       1         1   TABLE SCAN keyword AS k WHERE keyword as keyword = 'character-name-in-title'
    9828      1522  TABLE SCAN company_name AS cn WHERE (PROBE(Bitmap1025,id as id,N'IN ROW')) AND (country_code as country_code = 'de')
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS movie_title
       1         1  AGGREGATE MIN(min_20) AS min
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(title) AS min_20
       -      7834  INNER JOIN HASH ON movie_id = id_13
 2528312   2528312  │└DISTRIBUTE HASH ON id_13
 2528312   2528312   PROJECT id AS id_13, title
 2528312   2528312   TABLE SCAN title
       -      7834  INNER JOIN HASH ON keyword_id = id_0
  134170         1  │└DISTRIBUTE GATHER
  134170         1   PROJECT id AS id_0
  134170         1   FILTER keyword = 'character-name-in-title'
  134170         1   TABLE SCAN keyword
       -      7834  INNER JOIN HASH ON movie_id = movie_id_9
 4523930     41840  │└DISTRIBUTE HASH ON movie_id_9
 4523930     41840   PROJECT movie_id AS movie_id_9, keyword_id
 4523930     41840   TABLE SCAN movie_keyword
       -      7834  INNER JOIN HASH ON id = company_id
 2609129    148487  │└DISTRIBUTE HASH ON company_id
 2609129    148487   TABLE SCAN movie_companies
  211497      1513  FILTER country_code = 'de'
  211497      1513  TABLE SCAN company_name
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(title)
       7      7834  INNER JOIN LOOP ON id = movie_id
       7      7834  │└INNER JOIN LOOP ON id = company_id
     173    148552   │└INNER JOIN LOOP ON movie_id = movie_id
      34     41840    │└INNER JOIN LOOP ON keyword_id = id
       1         1     │└TABLE SEEK keyword AS k
     305     41840     TABLE SEEK movie_keyword AS mk
  209200    148532    TABLE SEEK movie_companies AS mc
  148552    148552   TABLE SEEK company_name AS cn WHERE cn.country_code = 'de'
    7834      7834  TABLE SEEK title AS t