PlannerTPC-H — TPCH-Q11

Engine Compare

Accuracy chart, rows processed ?
Scan
Scan
Join Probe
Join
Sort
Sort
Hash Build
Hash
Aggregate
Agg
Distribute
Dist
ClickHouse
Estimation Error
Est Err
Row Operations
Ops
810,001
810K
Rank
Estimation Error
Est Err
Row Operations
Ops
1,599,921
1.6M
Rank
Estimation Error
Est Err
Row Operations
Ops
32,493
32K
Rank
Estimation Error
Est Err
Row Operations
Ops
834,478
834K
Rank
Estimation Error
Est Err
Row Operations
Ops
34,557
35K
Rank
Estimation Error
Est Err
Row Operations
Ops
0
0
Rank
DuckDB
Estimation Error
Est Err
Row Operations
Ops
1,591,788
1.6M
Rank
Estimation Error
Est Err
Row Operations
Ops
1,619,881
1.6M
Rank
Estimation Error
Est Err
Row Operations
Ops
1,196
1.2K
Rank
Estimation Error
Est Err
Row Operations
Ops
61,294
61K
Rank
Estimation Error
Est Err
Row Operations
Ops
59,357
59K
Rank
Estimation Error
Est Err
Row Operations
Ops
0
0
Rank
PostgreSQL
Estimation Error
Est Err
Row Operations
Ops
810,001
810K
Rank
Estimation Error
Est Err
Row Operations
Ops
810,000
810K
Rank
Estimation Error
Est Err
Row Operations
Ops
30,876
31K
Rank
Estimation Error
Est Err
Row Operations
Ops
31,164
31K
Rank
Estimation Error
Est Err
Row Operations
Ops
29,680
30K
Rank
Estimation Error
Est Err
Row Operations
Ops
0
0
Rank
SQL Server
Estimation Error
Est Err
Row Operations
Ops
1,620,002
1.6M
Rank
Estimation Error
Est Err
Row Operations
Ops
1,621,196
1.6M
Rank
Estimation Error
Est Err
Row Operations
Ops
1,196
1.2K
Rank
Estimation Error
Est Err
Row Operations
Ops
88,193
88K
Rank
Estimation Error
Est Err
Row Operations
Ops
59,356
59K
Rank
Estimation Error
Est Err
Row Operations
Ops
0
0
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
ClickHouse
Estimate    Actual  Operator
       -     32493  PROJECT SUM(ps_supplycost * ps_availqty)
       -     32493  SORT SUM(ps_supplycost * ps_availqty)
       -     32493  FILTER SUM(ps_supplycost * ps_availqty) > 8654127.262542
       -     32493  GROUP BY HASH ps_partkey AGGREGATE SUM(ps_supplycost * ps_availqty)
       -     34557  PROJECT ps_supplycost * ps_availqty
       -     34557  INNER JOIN HASH ON s_nationkey = n_nationkey
       -         1  │└TABLE SCAN nation WHERE n_name = 'JAPAN'
       -    799921  INNER JOIN HASH ON ps_suppkey = s_suppkey
       -     10000  │└TABLE SCAN supplier
       -    800000  TABLE SCAN partsupp
DuckDB
Estimate    Actual  Operator
       -      1196  SORT SUM(ps_supplycost * ps_availqty)
      68      1196  PROJECT ps_partkey, v
      68      1196  INNER JOIN LOOP ON CAST(SUM(ps_supplycost * CAST(ps_availqty AS DECIMAL(18,0))) AS DECIMAL(38,6)) > SUBQUERY
       -         1  │└GROUP BY SIMPLE AGGREGATE "first" #0, count_star()
       1         1   PROJECT SUM(ps_supplycost * CAST(ps_availqty AS DECIMAL(18,0))) * 0.0001
       -         1   GROUP BY SIMPLE AGGREGATE SUM(#0)
   35798     29678   PROJECT ps_supplycost * CAST(ps_availqty AS DECIMAL(18,0))
   35798     29678   INNER JOIN HASH ON ps_suppkey = s_suppkey
     384       371   │└INNER JOIN HASH ON s_nationkey = n_nationkey
       1         1    │└TABLE SCAN nation WHERE n_name = 'JAPAN'
   10000       371    TABLE SCAN supplier
  800000    795522   TABLE SCAN partsupp WHERE ps_suppkey >= 1
   28835     28095  GROUP BY HASH #0 AGGREGATE SUM(#1)
   35798     29678  PROJECT ps_partkey, ps_supplycost * CAST(ps_availqty AS DECIMAL(18,0))
   35798     29678  INNER JOIN HASH ON ps_suppkey = s_suppkey
     384       371  │└INNER JOIN HASH ON s_nationkey = n_nationkey
       1         1   │└TABLE SCAN nation WHERE n_name = 'JAPAN'
   10000       371   TABLE SCAN supplier
  800000    795522  TABLE SCAN partsupp WHERE ps_suppkey >= 1
PostgreSQL
Estimate    Actual  Operator
   10666      1196  SORT SUM(ps_supplycost * ps_availqty)
   10666      1196  GROUP BY SORT ps_partkey AGGREGATE SUM(ps_supplycost * ps_availqty)
   41288     29680  SORT ps_partkey
   41288     29680  INNER JOIN HASH ON ps_suppkey = s_suppkey
    1600      1484  │└INNER JOIN HASH ON s_nationkey = n_nationkey
       1         1   │└TABLE SCAN nation WHERE n_name = 'JAPAN'
   10000     10000   TABLE SCAN supplier
 1032260    800000  TABLE SCAN partsupp
SQL Server
Estimate    Actual  Operator
    9038      1196  SORT Expr1007
    9038      1196  INNER JOIN LOOP ON n_name = 'JAPAN'
   30127     28095  │└PROJECT CASE WHEN Expr1029 = 0 THEN NULL ELSE Expr1030 END AS Expr1007
   30127     28095   GROUP BY HASH AGGREGATE COUNT(Expr1017) AS Expr1029, SUM(Expr1017) AS Expr1030
   31996     29678   INNER JOIN HASH ON s_suppkey = ps_suppkey
     400       371   │└INNER JOIN HASH ON n_nationkey = s_nationkey
       1         1    │└TABLE SEEK nation WHERE n_name = 'JAPAN'
   10000     10000    TABLE SEEK supplier
  800000    800000   PROJECT ps_supplycost * CONVERT_IMPLICIT(decimal(10,0),ps_availqty,0) AS Expr1017
  800000    800000   TABLE SCAN partsupp
       1         1  PROJECT CASE WHEN Expr1027 = 0 THEN NULL ELSE Expr1028 END AS Expr1015
       1         1  GROUP BY HASH AGGREGATE COUNT(Expr1018) AS Expr1027, SUM(Expr1018) AS Expr1028
   31996     29678  INNER JOIN HASH ON s_suppkey = ps_suppkey
     400       371  │└INNER JOIN HASH ON n_nationkey = s_nationkey
       1         1   │└TABLE SEEK nation WHERE n_name = 'JAPAN'
   10000     10000   TABLE SEEK supplier
  800000    800000  PROJECT ps_supplycost * CONVERT_IMPLICIT(decimal(10,0),ps_availqty,0) AS Expr1018
  800000    800000  TABLE SCAN partsupp