PlannerIMDB — JOB-9C

SELECT MIN(an.name) AS alternative_name,
       MIN(chn.name) AS voiced_character_name,
       MIN(n.name) AS voicing_actress,
       MIN(t.title) AS american_movie
FROM job.aka_name AS an,
     job.char_name AS chn,
     job.cast_info AS ci,
     job.company_name AS cn,
     job.movie_companies AS mc,
     job.name AS n,
     job.role_type AS rt,
     job.title AS t
WHERE ci.note IN ('(voice)',
                  '(voice: Japanese version)',
                  '(voice) (uncredited)',
                  '(voice: English version)')
  AND cn.country_code ='[us]'
  AND n.gender ='f'
  AND n.name LIKE '%An%'
  AND rt.role ='actress'
  AND ci.movie_id = t.id
  AND t.id = mc.movie_id
  AND ci.movie_id = mc.movie_id
  AND mc.company_id = cn.id
  AND ci.role_id = rt.id
  AND n.id = ci.person_id
  AND chn.id = ci.person_role_id
  AND an.person_id = n.id
  AND an.person_id = ci.person_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,501,393
9.5M
Rank
Estimation Error
Est Err
9,457,067
9.5M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
97,613
98K
Rank
Estimation Error
Est Err
8,144
8.1K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
45,473,479
45M
Rank
Estimation Error
Est Err
45,839,994
46M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
17,038,814
17M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
10,078,055
10M
Rank
Estimation Error
Est Err
10,345,213
10M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,981,762
2M
Rank
Estimation Error
Est Err
8,145
8.1K
Rank
Estimation Error
Est Err
910,888
911K
Rank
Apache Iceberg
Estimation Error
Est Err
18,054,314
18M
Rank
Estimation Error
Est Err
9,784,066
9.8M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
3,345,820
3.3M
Rank
Estimation Error
Est Err
8,154
8.2K
Rank
Estimation Error
Est Err
8,579,978
8.6M
Rank
Native storage
Estimation Error
Est Err
9,073,263
9.1M
Rank
Estimation Error
Est Err
3,576,999
3.6M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
3,524,308
3.5M
Rank
Estimation Error
Est Err
8,144
8.1K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
163,133
163K
Rank
Estimation Error
Est Err
113,121
113K
Rank
Estimation Error
Est Err
121,360
121K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
114,318
114K
Rank
Estimation Error
Est Err
8,149
8.1K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
645,842
646K
Rank
Estimation Error
Est Err
273,615
274K
Rank
Estimation Error
Est Err
700,630
701K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
954,826
955K
Rank
Estimation Error
Est Err
140,411
140K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
6,971,147
7M
Rank
Estimation Error
Est Err
57,128
57K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
6,975,972
7M
Rank
Estimation Error
Est Err
8,160
8.2K
Rank
Estimation Error
Est Err
6,967,845
7M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min, min, min
     251      8144  INNER JOIN HASH ON person_id72 = id6
    1048      4503  │└INNER JOIN HASH ON id56 = movie_id29
    1004      4503   │└INNER JOIN HASH ON id46 = person_role_id
    1051      4503    │└INNER JOIN HASH ON company_id = id36
    2864     12383     │└INNER JOIN HASH ON movie_id = movie_id29
    1397      5686      │└INNER JOIN HASH ON role_id = id
       1         1       │└TABLE SCAN role_type WHERE role = actress
   13279      5686       INNER JOIN HASH ON id6 = person_id
   61047     50011       │└TABLE SCAN name WHERE gender = f AND name LIKE '%An%'
  707897    255096       TABLE SCAN cast_info WHERE note IN(voice,voice uncredited,(voice : English version),(voice : Japanese version))
 2609129   2609129      TABLE SCAN movie_companies
   90648     17162     TABLE SCAN company_name WHERE country_code = us
 3140339   3140339    TABLE SCAN char_name
 2528312   2528312   TABLE SCAN title
  901343    901343  TABLE SCAN aka_name
Native storage
Estimate    Actual  Operator
       -         1  PROJECT a1 AS alternative_name, a2 AS voiced_character_name, a3 AS voicing_actress, a4 AS american_movie
       -         1  AGGREGATE MIN(name_right) AS a1, MIN(name_left) AS a2, MIN(name_right_2) AS a3, MIN(title) AS a4
       -         0  PROJECT name, name, name, title
       -         0  PROJECT name, name, name, title
       -         0  INNER JOIN HASH ON tuple(PROJECTION_5753.id,PROJECTION_5753.id) = tuple(PROJECTION_5714.movie_id,PROJECTION_5714.movie_id)
       -         0  │└PROJECT movie_id, movie_id, name, name, name
       -         0   PROJECT name, movie_id, name, movie_id, name
       -         0   INNER JOIN HASH ON PROJECTION_5750.id = PROJECTION_5717.company_id
       -    639781   │└PROJECT company_id, name, movie_id, name, movie_id, name
       -    639781    PROJECT name, movie_id, name, movie_id, company_id, name
       -    639781    INNER JOIN HASH ON PROJECTION_5747.movie_id = PROJECTION_5720.movie_id
       -    347884    │└PROJECT movie_id AS movie_id_right, name, name, name
       -    347884     PROJECT name, movie_id, name, name
       -    347884     INNER JOIN HASH ON PROJECTION_5744.id = PROJECTION_5723.person_role_id
       -    427653     │└PROJECT person_role_id, name_right, movie_id, name AS name_right_2
       -    427653      PROJECT name, person_role_id, movie_id, name
       -    427653      INNER JOIN HASH ON tuple(PROJECTION_5741.person_id,PROJECTION_5741.person_id) = tuple(PROJECTION_5726.person_id,PROJECTION_5726.id)
       -    416527      │└PROJECT person_id AS person_id_right, id, person_role_id, movie_id, name AS name_right
       -    416527       PROJECT person_id, person_role_id, movie_id, name, id
       -    416527       INNER JOIN HASH ON PROJECTION_5738.id = PROJECTION_5729.person_id
       -   7451973       │└PROJECT person_id, person_role_id, movie_id
       -   7451973        PROJECT person_id, person_role_id, movie_id
       -   7451973        INNER JOIN HASH ON PROJECTION_5735.role_id = PROJECTION_5732.id
       -         1        │└PROJECT id
       -         1         PROJECT id
       -         1         TABLE SCAN role_type WHERE role = 'actress'
       -  36244344        PROJECT role_id, person_id, person_role_id, movie_id
       -  36244344        PROJECT person_id, person_role_id, movie_id, role_id
       -  36244344        TABLE SCAN cast_info WHERE TRUE
       -     50011       PROJECT id, name
       -     50011       PROJECT id, name
       -     50011       TABLE SCAN name WHERE (gender = 'f') AND name LIKE '%An%'
       -    901343      PROJECT person_id AS person_id_left, name AS name_left
       -    901343      PROJECT name, person_id
       -    901343      TABLE SCAN aka_name
       -   3140339     PROJECT id, name AS name_left
       -   3140339     PROJECT name, id
       -   3140339     TABLE SCAN char_name
       -   2609129    PROJECT movie_id AS movie_id_left, company_id
       -   2609129    PROJECT movie_id, company_id
       -   2609129    TABLE SCAN movie_companies
       -         0   PROJECT id
       -         0   PROJECT id
       -         0   TABLE SCAN company_name WHERE country_code = 'us'
       -   2528312  PROJECT id, title
       -   2528312  PROJECT title, id
       -   2528312  TABLE SCAN title
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1), MIN(#2), MIN(#3)
     657      8144  PROJECT name, name, name, title
     657      8144  INNER JOIN HASH ON id = movie_id
     645      8144  │└INNER JOIN HASH ON id = person_role_id
     645      8514   │└INNER JOIN HASH ON id = person_id
    1113    505250    │└INNER JOIN HASH ON person_id = person_id
    4439    189554     │└INNER JOIN HASH ON role_id = id
       1         1      │└FILTER id <= 11
       1         1       TABLE SCAN role_type WHERE role = 'actress'
   53270    189554      INNER JOIN HASH ON movie_id = movie_id
   18253   1153798      │└INNER JOIN HASH ON company_id = id
    1644     84843       │└TABLE SCAN company_name WHERE country_code = 'us'
 2609129   2609129       TABLE SCAN movie_companies
 7248868    248264      FILTER (person_id >= 4) AND (movie_id BETWEEN 2 AND 2525745)
 7248868    248264      FILTER (note = '(voice)') OR (note = '(voice: Japanese version)') OR (note = '(voice) (uncredited)') OR (note = '(voice: English version)')
36244344   6367014      TABLE SCAN cast_info WHERE note IN('(voice)','(voice: Japanese version)','(voice) (uncredited)','(voice: English version)')
  901343     10451     TABLE SCAN aka_name WHERE person_id <= 4061926
 2083746       230    FILTER id BETWEEN 4 AND 4061926
 2083746       230    TABLE SCAN "name" WHERE gender = 'f' AND contains(name,'An')
 3140339       605   TABLE SCAN char_name
 2528312       990  TABLE SCAN title WHERE id >= 2 AND id <= 2525745
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT alternative_name, voiced_character_name, voicing_actress, american_movie
       1         1  AGGREGATE MIN(name), MIN(name), MIN(name), MIN(title)
   90635        10  DISTRIBUTE GATHER
   90635        10  AGGREGATE MIN(name), MIN(name), MIN(name), MIN(title)
   90635      8144  INNER JOIN HASH ON movie_id = id AND movie_id = id
   90635      8144  │└DISTRIBUTE GATHER
   90635      8144   INNER JOIN HASH ON id = role_id
       3         1   │└DISTRIBUTE GATHER
       3         1    FILTER role = 'actress'
      12        12    DISTRIBUTE ROUND ROBIN
      12        12    TABLE SCAN role_type WHERE role = 'actress'
  332330      8144   INNER JOIN HASH ON person_id = id AND person_id = id
  332330    490029   │└DISTRIBUTE HASH ON person_id, person_id
  332330    490029    INNER JOIN HASH ON id = company_id
   47000     84843    │└DISTRIBUTE GATHER
   47000     84843     FILTER country_code = 'us'
  234997    234997     TABLE SCAN company_name WHERE country_code = 'us'
 1661629    930328    INNER JOIN HASH ON movie_id = movie_id
 1608526    497319    │└DISTRIBUTE HASH ON movie_id
 1608526    497319     INNER JOIN HASH ON person_role_id = id
 1608526    517803     │└DISTRIBUTE HASH ON person_role_id
 1608526    517803      INNER JOIN HASH ON person_id = person_id
  901343    901343      │└DISTRIBUTE HASH ON person_id
  901343    901343       TABLE SCAN aka_name
 7248869    280995      DISTRIBUTE HASH ON person_id
 7248869    280995      FILTER note IN('(voice)','(voice: Japanese version)','(voice) (uncredited)','(voice: English version)')
36244344   7656546      TABLE SCAN cast_info WHERE (note IN('(voice)','(voice: Japanese version)','(voice) (uncredited)','(voice: English version)') AND CASE MOD(HASH_REPARTITION person_id,10) WHEN 0 THEN (((person_id >= 5) AND (person_id <= 4167489)) AND TRUE) WHEN 1 THEN (((person_id >= 15) AND (person_id <= 4167473)) AND TRUE) WHEN 2 THEN (((person_id >= 69) AND (person_id <= 4167478)) AND TRUE) WHEN 3 THEN (((person_id >= 161) AND (person_id <= 4167352)) AND TRUE) WHEN 4 THEN ...
 3140339   3140339     DISTRIBUTE HASH ON id
 3140339   3140339     TABLE SCAN char_name WHERE CASE MOD(HASH_REPARTITION id,10) WHEN 0 THEN (((id >= 119) AND (id <= 3139884)) AND TRUE) WHEN 1 THEN (((id >= 63) AND (id <= 3139863)) AND TRUE) WHEN 2 THEN (((id >= 53) AND (id <= 3139889)) AND TRUE) WHEN 3 THEN (((id >= 1) AND (id <= 3139888)) AND TRUE) WHEN 4 THEN (((id >= 21) AND (id <= 3139890)) AND TRUE) WHEN 5 THEN (((id >= 57) AND (id <= 3139914)) AND TRUE) WHEN 6 THEN (((id >= 142) AND (id <= 3139883)) AND TRUE) WHEN 7 THEN ...
 2609129   2609129    DISTRIBUTE HASH ON movie_id
 2609129   2609129    TABLE SCAN movie_companies WHERE CASE MOD(HASH_REPARTITION movie_id,10) WHEN 0 THEN (((movie_id >= 920) AND (movie_id <= 2525688)) AND TRUE) WHEN 1 THEN (((movie_id >= 1126) AND (movie_id <= 2525697)) AND TRUE) WHEN 2 THEN (((movie_id >= 921) AND (movie_id <= 2525701)) AND TRUE) WHEN 3 THEN (((movie_id >= 912) AND (movie_id <= 2525700)) AND TRUE) WHEN 4 THEN (((movie_id >= 925) AND (movie_id <= 2525205)) AND TRUE) WHEN 5 THEN (((movie_id >= 908) AND (movie_id <= 25...
  833499     50011   DISTRIBUTE HASH ON id, id
  833499     50011   FILTER (gender = 'f') AND name LIKE '%An%'
 4167491    983636   TABLE SCAN name WHERE ((gender = 'f') AND name LIKE '%An%') AND CASE MOD(HASH_REPARTITION(id,id),10) WHEN 1 THEN ((((id >= 169332) AND (id <= 2700427)) AND ((id >= 169332) AND (id <= 2700427))) AND TRUE) WHEN 3 THEN ((((id >= 4453) AND (id <= 2698015)) AND ((id >= 4453) AND (id <= 2698015))) AND TRUE) WHEN 5 THEN ((((id >= 1728587) AND (id <= 2700464)) AND ((id >= 1728587) AND (id <= 2700464))) AND TRUE) WHEN 7 THEN ((((id >= 1728872) AND (id <= 2700366)) AND ((id >= 1...
 2528312   2528312  TABLE SCAN title WHERE (((id >= 34003) AND (id <= 2519219)) AND ((id >= 34003) AND (id <= 2519219))) AND TRUE
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)
     608      8144  INNER JOIN HASH ON ci.movie_id = mc.movie_id
     608      7726  │└DISTRIBUTE GATHER
     150      7726   INNER JOIN HASH ON ci.person_id = an.person_id
     150      5686   │└DISTRIBUTE GATHER
     142      5686    INNER JOIN HASH ON ci.movie_id = t.id
     142      5686    │└DISTRIBUTE GATHER
     142      5686     INNER JOIN HASH ON ci.person_role_id = chn.id
     142      5686     │└DISTRIBUTE GATHER
     142      5686      INNER JOIN HASH ON ci.role_id = rt.id
     142         1      │└DISTRIBUTE GATHER
  901000         1       TABLE SCAN role_type WHERE rt.role = 'actress'
   12100      5686      INNER JOIN HASH ON ci.person_id = n.id
   12100    801259      │└DISTRIBUTE GATHER
  235000    801259       TABLE SCAN cast_info WHERE (ci.note IN('(voice)','(voice: Japanese version)','(voice) (uncredited)','(voice: English version)')) AND (ci.person_role_id IS NOT NULL)
 2610000     49644      TABLE SCAN name WHERE (n.gender IS NOT NULL) AND (n.gender = 'f') AND contains(n.name,'An')
 2530000   3132165     TABLE SCAN char_name
 3140000   2520139    TABLE SCAN title
 4170000    893159   TABLE SCAN aka_name
     238   1147575  INNER JOIN HASH ON mc.company_id = cn.id
     238     84843  │└DISTRIBUTE GATHER
      12     84843   TABLE SCAN company_name WHERE (cn.country_code IS NOT NULL) AND (cn.country_code = 'us')
36200000   2596845  TABLE SCAN movie_companies
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(partialagg1048) AS Expr1016, MIN(partialagg1049) AS Expr1017, MIN(partialagg1050) AS Expr1018, MIN(partialagg1051) AS Expr1019
       5        10  AGGREGATE MIN(name as name) AS partialagg1048, MIN(name as name) AS partialagg1049, MIN(name as name) AS partialagg1050, MIN(title as title) AS partialagg1051
   15469    140401  INNER JOIN HASH ON ci.role_id = rt.id
       1         1  │└FILTER role as role = 'actress'
      12        12   INNER JOIN LOOP ON Bmk1012 = Bmk1012
       1        12   │└TABLE SEEK role_type AS rt
      12        12   TABLE SEEK role_type AS rt
   17016    140401  INNER JOIN HASH ON an.person_id = n.id
    3506     47973  │└INNER JOIN HASH ON mc.company_id = cn.id
   84576     84843   │└TABLE SCAN company_name AS cn WHERE country_code as country_code = 'us'
    9751     47973   INNER JOIN HASH ON mc.movie_id = t.id
    4482     62580   │└INNER JOIN LOOP ON Bmk1014 = Bmk1014
       1     62580    │└TABLE SEEK title AS t
    4482     62580    PROJECT BmkToPage Bmk1014 AS Expr1601
    4482     62580    INNER JOIN LOOP ON ci.movie_id = t.id
       1     62580    │└TABLE SEEK title AS t
    4482     62580    INNER JOIN LOOP ON Bmk1002 = Bmk1002
       1     62580    │└TABLE SEEK char_name AS chn
    4482     62580    PROJECT BmkToPage Bmk1002 AS Expr1598
    4482     62580    INNER JOIN LOOP ON ci.person_role_id = chn.id
       1     62580    │└TABLE SEEK char_name AS chn
    9964     68065    INNER JOIN HASH ON n.id = ci.person_id
   86757    276269    │└TABLE SCAN cast_info AS ci WHERE (note as note = '(voice)' OR note as note = '(voice) (uncredited)' OR note as note = '(voice: English version)' OR note as note = '(voice: Japanese version)') AND BLOOM(role_id as role_id)
     478      8477    TABLE SCAN name AS n WHERE name as name LIKE '%An%' AND gender as gender = 'f' AND BLOOM(id as id)
   26091     23271   TABLE SEEK movie_companies AS mc WHERE BLOOM(company_id as company_id) AND BLOOM(movie_id as movie_id)
     901      2638  TABLE SCAN aka_name AS an WHERE BLOOM(person_id as person_id)
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS alternative_name, min_50 AS voiced_character_name, min_51 AS voicing_actress, min_52 AS american_movie
       1         1  AGGREGATE MIN(min_53) AS min, MIN(min_54) AS min_50, MIN(min_55) AS min_51, MIN(min_56) AS min_52
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(name) AS min_53, MIN(name_1) AS min_54, MIN(name_29) AS min_55, MIN(title) AS min_56
       -      8144  INNER JOIN HASH ON movie_id = id_43
 2528312   2528312  │└DISTRIBUTE HASH ON id_43
 2528312   2528312   PROJECT id AS id_43, title
 2528312   2528312   TABLE SCAN title
       -      8144  INNER JOIN HASH ON role_id = id_39
      12         1  │└DISTRIBUTE GATHER
      12         1   PROJECT id AS id_39
      12         1   FILTER role = 'actress'
      12         1   TABLE SCAN role_type
       -      8144  INNER JOIN HASH ON person_id_10 = id_28
 4167491     50011  │└DISTRIBUTE HASH ON id_28
 4167491     50011   PROJECT id AS id_28, name AS name_29
 4167491     50011   FILTER (gender = 'f') AND (name LIKE '%An%')
 4167491     50011   TABLE SCAN name
       -      8144  INNER JOIN HASH ON company_id = id_14
  234997     84843  │└DISTRIBUTE GATHER
  234997     84843   PROJECT id AS id_14
  234997     84843   FILTER country_code = 'us'
  234997     84843   TABLE SCAN company_name
       -      8144  INNER JOIN HASH ON movie_id = movie_id_23
 2609129   1153798  │└DISTRIBUTE HASH ON movie_id_23
 2609129   1153798   PROJECT movie_id AS movie_id_23, company_id
 2609129   1153798   TABLE SCAN movie_companies
       -      7726  INNER JOIN HASH ON person_role_id = id_0
 3140339   3140339  │└DISTRIBUTE HASH ON id_0
 3140339   3140339   PROJECT id AS id_0, name AS name_1
 3140339   3140339   TABLE SCAN char_name
       -      8204  INNER JOIN HASH ON person_id_10 = person_id
  901343     10525  │└DISTRIBUTE GATHER
  901343     10525   TABLE SCAN aka_name
32619910      3318  PROJECT person_id AS person_id_10, movie_id, person_role_id, role_id
32619910      3318  FILTER note IN('(voice)','(voice) (uncredited)','(voice: English version)','(voice: Japanese version)')
32619910      3318  TABLE SCAN cast_info
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name), MIN(name), MIN(name), MIN(title)
       5         5  AGGREGATE PARTIAL MIN(name), PARTIAL MIN(name), PARTIAL MIN(name), PARTIAL MIN(title)
    1595      8144  INNER JOIN LOOP ON id = company_id
    4370     18345  │└INNER JOIN LOOP ON movie_id = id AND movie_id = movie_id AND (movie_id = movie_id)
    1530      7726   │└INNER JOIN LOOP ON id = movie_id
    1530      7726    │└INNER JOIN LOOP ON id = person_role_id
     306      1640     │└INNER JOIN HASH ON role_id = id
       1         1      │└TABLE SCAN role_type AS rt WHERE rt.role = 'actress'
   18380      8204      INNER JOIN LOOP ON person_id = person_id AND person_id = id AND (person_id = id)
    7860     10525      │└INNER JOIN LOOP ON person_id = id
   36375     50011       │└TABLE SCAN name AS n WHERE (n.name LIKE '%An%') AND (n.gender = 'f')
  100022     50011       TABLE SEEK aka_name AS an
  126300     10525      TABLE SEEK cast_info AS ci WHERE ci.note IN('(voice)','(voice: Japanese version)','(voice) (uncredited)','(voice: English version)')
    8204      8204     TABLE SEEK char_name AS chn
    7726      7726    TABLE SEEK title AS t
   38630     18310   TABLE SEEK movie_companies AS mc
   18345     18345  TABLE SEEK company_name AS cn WHERE cn.country_code = 'us'