PlannerIMDB — JOB-16C

SELECT MIN(an.name) AS cool_actor_pseudonym,
       MIN(t.title) AS series_named_after_char
FROM job.aka_name AS an,
     job.cast_info AS ci,
     job.company_name AS cn,
     job.keyword AS k,
     job.movie_companies AS mc,
     job.movie_keyword AS mk,
     job.name AS n,
     job.title AS t
WHERE cn.country_code ='[us]'
  AND k.keyword ='character-name-in-title'
  AND t.episode_nr < 100
  AND an.person_id = n.id
  AND n.id = ci.person_id
  AND ci.movie_id = t.id
  AND t.id = mk.movie_id
  AND mk.keyword_id = k.id
  AND t.id = mc.movie_id
  AND mc.company_id = cn.id
  AND an.person_id = ci.person_id
  AND ci.movie_id = mc.movie_id
  AND ci.movie_id = mk.movie_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
48,453,754
48M
Rank
Estimation Error
Est Err
48,461,701
48M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
967,965
968K
Rank
Estimation Error
Est Err
319,932
320K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
49,393,144
49M
Rank
Estimation Error
Est Err
49,393,143
49M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
106,492
106K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
49,436,681
49M
Rank
Estimation Error
Est Err
49,436,680
49M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
869,642
870K
Rank
Estimation Error
Est Err
319,933
320K
Rank
Estimation Error
Est Err
511,930
512K
Rank
Native storage
Estimation Error
Est Err
274,838
275K
Rank
Estimation Error
Est Err
978,845
979K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
967,961
968K
Rank
Estimation Error
Est Err
319,932
320K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
868,887
869K
Rank
Estimation Error
Est Err
868,887
869K
Rank
Estimation Error
Est Err
869,701
870K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
869,642
870K
Rank
Estimation Error
Est Err
319,932
320K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
654,318
654K
Rank
Estimation Error
Est Err
621,288
621K
Rank
Estimation Error
Est Err
976,134
976K
Rank
Estimation Error
Est Err
263,449
263K
Rank
Estimation Error
Est Err
941,220
941K
Rank
Estimation Error
Est Err
319,942
320K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
6,958,225
7M
Rank
Estimation Error
Est Err
23,251,265
23M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
20,944,478
21M
Rank
Estimation Error
Est Err
319,948
320K
Rank
Estimation Error
Est Err
6,210,715
6.2M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min
    1414    319932  INNER JOIN HASH ON id67 = person_id
    1104    319932  │└INNER JOIN HASH ON person_id57 = person_id
    1211    221609   │└INNER JOIN HASH ON movie_id48 = movie_id29
      43      8538    │└INNER JOIN HASH ON company_id = id36
     116     11406     │└INNER JOIN HASH ON movie_id29 = movie_id
      13      6926      │└INNER JOIN HASH ON id13 = 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
  990090      6921       TABLE SCAN title WHERE episode_nr <= 99
 2609129   2609129      TABLE SCAN movie_companies
   90648       595     TABLE SCAN company_name WHERE country_code = us
36244344  36244344    TABLE SCAN cast_info
  901343    901343   TABLE SCAN aka_name
 4167491   4167491  TABLE SCAN name
Native storage
Estimate    Actual  Operator
       -         1  PROJECT a1 AS cool_actor_pseudonym, a2 AS series_named_after_char
       -         1  AGGREGATE MIN(name) AS a1, MIN(title) AS a2
       -         0  PROJECT name, title
       -         0  PROJECT name, title
       -         0  INNER JOIN HASH ON tuple(PROJECTION_1161.id,PROJECTION_1161.id) = tuple(PROJECTION_1122.person_id,PROJECTION_1122.person_id)
       -         0  │└PROJECT person_id, person_id, name, title
       -         0   PROJECT name, person_id, person_id, title
       -         0   INNER JOIN HASH ON PROJECTION_1158.person_id = PROJECTION_1125.person_id
       -         0   │└PROJECT person_id AS person_id_right, title
       -         0    PROJECT person_id, title
       -         0    INNER JOIN HASH ON tuple(PROJECTION_1155.movie_id,PROJECTION_1155.movie_id,PROJECTION_1155.movie_id) = tuple(PROJECTION_1128.movie_id,PROJECTION_1128.movie_id,PROJECTION_1128.id)
       -         0    │└PROJECT movie_id_right, movie_id AS movie_id_right_2, id, title
       -         0     PROJECT movie_id, movie_id, title, id
       -         0     INNER JOIN HASH ON PROJECTION_1152.id = PROJECTION_1131.company_id
       -     11406     │└PROJECT company_id, movie_id, movie_id, title, id AS id_right
       -     11406      PROJECT movie_id, company_id, movie_id, title, id
       -     11406      INNER JOIN HASH ON tuple(PROJECTION_1149.movie_id,PROJECTION_1149.movie_id) = tuple(PROJECTION_1134.movie_id,PROJECTION_1134.id)
       -      6926      │└PROJECT movie_id AS movie_id_right, id, title
       -      6926       PROJECT movie_id, title, id
       -      6926       INNER JOIN HASH ON PROJECTION_1146.id = PROJECTION_1137.movie_id
       -     41840       │└PROJECT movie_id
       -     41840        PROJECT movie_id
       -     41840        INNER JOIN HASH ON PROJECTION_1143.keyword_id = PROJECTION_1140.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
       -    946906       PROJECT id, title
       -    946906       PROJECT id, title
       -    946906       TABLE SCAN title WHERE episode_nr < 100
       -   2609129      PROJECT movie_id AS movie_id_left, company_id
       -   2609129      PROJECT movie_id, company_id
       -   2609129      TABLE SCAN movie_companies
       -         0     PROJECT id AS id_left
       -         0     PROJECT id
       -         0     TABLE SCAN company_name WHERE country_code = 'us'
       -  36244344    PROJECT movie_id AS movie_id_left, person_id
       -  36244344    PROJECT person_id, movie_id
       -  36244344    TABLE SCAN cast_info
       -    901343   PROJECT person_id AS person_id_left, name
       -    901343   PROJECT name, person_id
       -    901343   TABLE SCAN aka_name
       -   4167491  PROJECT id
       -   4167491  PROJECT id
       -   4167491  TABLE SCAN name
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1)
       0    319932  PROJECT name, title
       0    319932  INNER JOIN HASH ON id = person_id
       0    319932  │└INNER JOIN HASH ON person_id = person_id
       1    221609   │└INNER JOIN HASH ON movie_id = id
       0      8538    │└INNER JOIN HASH ON id = company_id
      14     11406     │└INNER JOIN HASH ON movie_id = movie_id
      14      6926      │└INNER JOIN HASH ON 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
  505662     16458       FILTER id BETWEEN 2 AND 2525745
  505662     16464       TABLE SCAN title WHERE episode_nr < 100
 2609129     14232      TABLE SCAN movie_companies
    1644     44844     TABLE SCAN company_name WHERE country_code = 'us'
36244344    108162    FILTER person_id >= 4
36244344    108162    TABLE SCAN cast_info WHERE movie_id >= 2 AND movie_id <= 2525745
  901343     33049   TABLE SCAN aka_name WHERE person_id <= 4061926
 4167491     16248  TABLE SCAN "name" WHERE id >= 4 AND id <= 4061926
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(an.name), MIN(t.title)
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(an.name), MIN(t.title)
    5200    319932  INNER JOIN HASH ON ci.person_id = an.person_id
    5200    221609  │└DISTRIBUTE GATHER
    3280    221609   INNER JOIN HASH ON ci.person_id = n.id
    3280    221609   │└DISTRIBUTE GATHER
    3280    221609    INNER JOIN HASH ON mc.movie_id = ci.movie_id
    3280      8538    │└DISTRIBUTE GATHER
     199      8538     INNER JOIN HASH ON mc.company_id = cn.id
     199     11406     │└DISTRIBUTE GATHER
     192     11406      INNER JOIN HASH ON mk.movie_id = mc.movie_id
     192      6926      │└DISTRIBUTE GATHER
      75      6926       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
  901000         1         TABLE SCAN keyword WHERE k.keyword = 'character-name-in-title'
 4170000   4519861        TABLE SCAN movie_keyword
36200000    943646       TABLE SCAN title WHERE (t.episode_nr IS NOT NULL) AND (t.episode_nr < 100L)
  235000   2605043      TABLE SCAN movie_companies
 2610000     83360     TABLE SCAN company_name WHERE (cn.country_code IS NOT NULL) AND (cn.country_code = 'us')
 2530000  36228057    TABLE SCAN cast_info
  134000   4159342   TABLE SCAN name
 4520000    897371  TABLE SCAN aka_name
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(partialagg1030) AS Expr1016, MIN(partialagg1031) AS Expr1017
       5        10  AGGREGATE MIN(name as name) AS partialagg1030, MIN(title as title) AS partialagg1031
   17734    319932  INNER JOIN HASH ON an.person_id = ci.person_id
    3654    221609  │└INNER JOIN LOOP ON Bmk1002 = Bmk1002
       1    221609   │└TABLE SEEK cast_info AS ci
    3654    221609   SORT Expr1053
    3654    221609   PROJECT BmkToPage Bmk1002 AS Expr1053
    3654    221609   INNER JOIN LOOP ON t.id = ci.movie_id
      30    221609   │└TABLE SEEK cast_info AS ci
     120      8538   FILTER country_code as country_code = 'us'
     336     11406   INNER JOIN LOOP ON Bmk1004 = Bmk1004
       1     11406   │└TABLE SEEK company_name AS cn
     336     11406   INNER JOIN LOOP ON mc.company_id = cn.id
       1     11406   │└TABLE SEEK company_name AS cn
     336     11406   INNER JOIN LOOP ON Bmk1008 = Bmk1008
       1     11406   │└TABLE SEEK movie_companies AS mc
     336     11406   INNER JOIN LOOP ON t.id = mc.movie_id
       9     11406   │└TABLE SEEK movie_companies AS mc
      33      6926   INNER JOIN LOOP ON Bmk1014 = Bmk1014
       0      6926   │└TABLE SEEK title AS t WHERE episode_nr as episode_nr < 100
      90     41840   INNER JOIN LOOP ON mk.movie_id = t.id
       1     41840   │└TABLE SEEK title AS t
      90     41840   SORT movie_id
      90     41840   INNER JOIN LOOP ON Bmk1010 = Bmk1010
       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'
    9013     33029  TABLE SCAN aka_name AS an WHERE BLOOM(person_id as person_id)
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS cool_actor_pseudonym, min_46 AS series_named_after_char
       1         1  AGGREGATE MIN(min_47) AS min, MIN(min_48) AS min_46
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(name) AS min_47, MIN(title) AS min_48
       -    319932  INNER JOIN HASH ON movie_id = id_38
    1189    946906  │└DISTRIBUTE HASH ON id_38
    1189    946906   PROJECT id AS id_38, title
    1189    946906   FILTER episode_nr < 100
    1189    946906   TABLE SCAN title
       -   3710592  INNER JOIN HASH ON person_id_1 = id_27
 4167491   4167491  │└DISTRIBUTE HASH ON id_27
 4167491   4167491   PROJECT id AS id_27
 4167491   4167491   TABLE SCAN name
       -   3710592  INNER JOIN HASH ON keyword_id = id_12
  134170         1  │└DISTRIBUTE GATHER
  134170         1   PROJECT id AS id_12
  134170         1   FILTER keyword = 'character-name-in-title'
  134170         1   TABLE SCAN keyword
       -   3710592  INNER JOIN HASH ON movie_id = movie_id_23
 4523930     41840  │└DISTRIBUTE HASH ON movie_id_23
 4523930     41840   PROJECT movie_id AS movie_id_23, keyword_id
 4523930     41840   TABLE SCAN movie_keyword
       -   3709435  INNER JOIN HASH ON company_id = id_5
  234997     84843  │└DISTRIBUTE GATHER
  234997     84843   PROJECT id AS id_5
  234997     84843   FILTER country_code = 'us'
  234997     84843   TABLE SCAN company_name
       -   3709435  INNER JOIN HASH ON movie_id = movie_id_17
 2609129     68275  │└DISTRIBUTE HASH ON movie_id_17
 2609129     68275   PROJECT movie_id AS movie_id_17, company_id
 2609129     68275   TABLE SCAN movie_companies
       -    990027  INNER JOIN HASH ON person_id_1 = person_id
  901343    901343  │└DISTRIBUTE GATHER
  901343    901343   TABLE SCAN aka_name
36244344    747526  PROJECT person_id AS person_id_1, movie_id
36244344    747526  TABLE SCAN cast_info
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name), MIN(title)
    1245    319932  INNER JOIN LOOP ON person_id = id
     512    221609  │└INNER JOIN LOOP ON id = person_id
     512    221609   │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
      23      8538    │└INNER JOIN LOOP ON id = company_id
      64     11406     │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
      13      6926      │└INNER JOIN LOOP ON 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
   41840     41840       TABLE SEEK title AS t WHERE t.episode_nr < 100
   34630     11427      TABLE SEEK movie_companies AS mc
   11406     11406     TABLE SEEK company_name AS cn WHERE cn.country_code = 'us'
  332982    221646    TABLE SEEK cast_info AS ci
  221609    221609   TABLE SEEK name AS n
  443218    319116  TABLE SEEK aka_name AS an