PlannerIMDB — JOB-2C

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 ='[sm]'
  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
7,133,061
7.1M
Rank
Estimation Error
Est Err
7,281,611
7.3M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
190,393
190K
Rank
Estimation Error
Est Err
0
0
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
7,040,139
7M
Rank
Estimation Error
Est Err
7,040,137
7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
125,521
126K
Rank
Estimation Error
Est Err
1
1
Rank
Estimation Error
Est Err
83,683
84K
Rank
Apache Iceberg
Estimation Error
Est Err
5,909,958
5.9M
Rank
Estimation Error
Est Err
5,652,910
5.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
5
5
Rank
Estimation Error
Est Err
10
10
Rank
Estimation Error
Est Err
4,658,114
4.7M
Rank
Native storage
Estimation Error
Est Err
235,933
236K
Rank
Estimation Error
Est Err
235,932
236K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
338,942
339K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
190,374
190K
Rank
Estimation Error
Est Err
190,374
190K
Rank
Estimation Error
Est Err
338,945
339K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
190,394
190K
Rank
Estimation Error
Est Err
1
1
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
14
14
Rank
Estimation Error
Est Err
12
12
Rank
Estimation Error
Est Err
14
14
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
13
13
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
2,718,640
2.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,718,640
2.7M
Rank
Estimation Error
Est Err
16
16
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
       1         0  INNER JOIN HASH ON movie_id24 = id31
       1         0  │└INNER JOIN HASH ON id = company_id
     159         1   │└TABLE SCAN company_name WHERE country_code = sm
     284    148552   INNER JOIN HASH ON movie_id24 = movie_id
      32     41840   │└INNER JOIN HASH ON keyword_id = id11
       1         1    │└TABLE SCAN keyword WHERE keyword = character - name - in - title
 4523930   4523930    TABLE SCAN movie_keyword
 2609129   2609129   TABLE SCAN movie_companies
 2528312         0  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_4122.movie_id,PROJECTION_4122.id) = tuple(PROJECTION_4113.movie_id,PROJECTION_4113.movie_id)
       -         0  │└PROJECT movie_id AS movie_id_right
       -         0   PROJECT movie_id
       -         0   INNER JOIN HASH ON PROJECTION_4119.id = PROJECTION_4116.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 = 'sm'
       -     41840  PROJECT movie_id AS movie_id_left, id, title
       -     41840  PROJECT movie_id, title, id
       -     41840  INNER JOIN HASH ON PROJECTION_4134.id = PROJECTION_4125.movie_id
       -     41840  │└PROJECT movie_id
       -     41840   PROJECT movie_id
       -     41840   INNER JOIN HASH ON PROJECTION_4131.keyword_id = PROJECTION_4128.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         0  PROJECT title
       0         0  INNER JOIN HASH ON id = movie_id
       0         0  │└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         1   TABLE SCAN company_name WHERE country_code = 'sm'
 2528312     20480  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         0  INNER JOIN HASH ON movie_id = id AND movie_id = id
  186916         0  │└DISTRIBUTE HASH ON movie_id, movie_id
  186916         0   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         2   INNER JOIN HASH ON movie_id = movie_id
  521832         2   │└DISTRIBUTE HASH ON movie_id
  521832         2    INNER JOIN HASH ON id = company_id
   47000         1    │└DISTRIBUTE GATHER
   47000         1     FILTER country_code = 'sm'
  234997    122880     TABLE SCAN company_name WHERE country_code = 'sm'
 2609129   1128978    TABLE SCAN movie_companies WHERE ((company_id >= 57564) AND (company_id <= 57564)) AND company_id IN 57564
 4523930   4523930   DISTRIBUTE HASH ON movie_id
 4523930   4523930   TABLE SCAN movie_keyword WHERE CASE MOD(HASH_REPARTITION movie_id,10) WHEN 6 THEN (((movie_id >= 2227491) AND (movie_id <= 2227491)) AND movie_id IN 2227491) WHEN 8 THEN (((movie_id >= 2463761) AND (movie_id <= 2463761)) AND movie_id IN 2463761) ELSE FALSE END AND (((keyword_id >= 117) AND (keyword_id <= 117)) AND keyword_id IN 117)
 2528312         0  DISTRIBUTE HASH ON id, id
 2528312         0  TABLE SCAN title WHERE FALSE AND TRUE
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(t.title)
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(t.title)
     191         0  INNER JOIN HASH ON mc.company_id = cn.id
     191         1  │└DISTRIBUTE GATHER
  235000         1   TABLE SCAN company_name WHERE (cn.country_code IS NOT NULL) AND (cn.country_code = 'sm')
   12700         0  INNER JOIN HASH ON mk.movie_id = mc.movie_id
   12700     41840  │└DISTRIBUTE GATHER
   12100     41840   INNER JOIN HASH ON mk.movie_id = t.id
   12100     41840   │└DISTRIBUTE GATHER
      71     41840    INNER JOIN HASH ON mk.keyword_id = k.id
      71         1    │└DISTRIBUTE GATHER
  134000         1     TABLE SCAN keyword WHERE k.keyword = 'character-name-in-title'
 4520000   4519861    TABLE SCAN movie_keyword
 2530000   2520276   TABLE SCAN title
 2610000         0  TABLE SCAN movie_companies
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(title as title) AS Expr1010
       1         0  INNER JOIN HASH ON mk.keyword_id = k.id
       1         1  │└TABLE SCAN keyword AS k WHERE keyword as keyword = 'character-name-in-title'
     770         2  INNER JOIN LOOP ON Bmk1008 = Bmk1008
       1         2  │└TABLE SEEK title AS t
     770         2  PROJECT BmkToPage Bmk1008 AS Expr1033
     770         2  INNER JOIN LOOP ON mk.movie_id = t.id
       1         2  │└TABLE SEEK title AS t
     770         2  INNER JOIN LOOP ON Bmk1006 = Bmk1006
       1         2  │└TABLE SEEK movie_keyword AS mk
     770         2  INNER JOIN LOOP ON mc.movie_id = mk.movie_id
      17         2  │└TABLE SEEK movie_keyword AS mk
      44         2  INNER JOIN LOOP ON Bmk1004 = Bmk1004
       1         2  │└TABLE SEEK movie_companies AS mc
      44         2  PROJECT BmkToPage Bmk1004 AS Expr1028
      44         2  INNER JOIN LOOP ON cn.id = mc.company_id
      44         2  │└TABLE SEEK movie_companies AS mc
       1         1  TABLE SCAN company_name AS cn WHERE country_code as country_code = 'sm'
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
       -         0  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
       -         0  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
       -         0  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
       -         0  INNER JOIN HASH ON id = company_id
 2609129    148487  │└DISTRIBUTE HASH ON company_id
 2609129    148487   TABLE SCAN movie_companies
  211497         0  FILTER country_code = 'sm'
  211497         0  TABLE SCAN company_name
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(title)
       1         1  INNER JOIN LOOP ON id = movie_id
       1         0  │└INNER JOIN HASH ON company_id = id
      19         1   │└TABLE SEEK company_name AS cn
     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
       0         0  TABLE SEEK title AS t