IMPALA-14115: Calcite planner: Added top-n analytic PlanNode optimization.

Impala has an optimization for analytic expressions that have a rank filter on
top of the analytic expression. It can add a top-n plan node to reduce the amount
of rows examined. This is tested in tpcds query 67.

The optimization logic relies on an unassigned rank conjunct within the analyzer
while creating the analytic plan node.

A slight reorganization of the code was needed to implement this optimization.
The SlotRefs for the AnalyticInfo needed to be created a little earlier from
where it was done in the previous commit.

A small fix was made to normalize binary predicates. A non-normalized binary
predicate prevents the optimization from being used.

A call to the checkAndApplyLimitPushdown is needed for some of the optimizations
to kick in.

A new AllProjectInfo internal class was created to hold the relationships
between the Calcite RexNode objects and the Impala Analytic expressions.

Also, IMPALA-14158 is fixed by this commit. The nullsFirst value was
incorrect when the syntax was explicit in the query.

A new Calcite planner test was added in the junit tests to ensure the
optimization kicks in. The new test file is in the
PlannerTest/calcite/limit-pushdown-analytic-calcite.test file. This is a copy
of the limit-pushdown-analytic.test file in its parent directory but with some
modified results. Most of the differences are trivial, but IMPALA-14469 has been
filed to deal with one optimization that did not get fixed, which is when
the order by clause has a constant expression.

Change-Id: Ie6fa6781db56771b13b0cf49bd236f776016bf8d
Reviewed-on: http://gerrit.cloudera.org:8080/23317
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
Reviewed-by: Aman Sinha <amsinha@cloudera.com>
This commit is contained in:
Steve Carlin
2025-06-02 10:28:54 -07:00
parent 98f993da43
commit cde4bc016c
14 changed files with 4695 additions and 899 deletions

View File

@@ -48,7 +48,7 @@ Max Per-Host Resource Reservation: Memory=263.62MB Threads=1
Per-Host Resource Estimates: Memory=55.19GB
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
| Per-Instance Resources: mem-estimate=55.19GB mem-reservation=263.62MB thread-reservation=1 runtime-filters-memory=3.00MB
| max-parallelism=1 segment-costs=[176670599328, 73050686125, 54567099909, 45827804421, 1000]
| max-parallelism=1 segment-costs=[176670599328, 73050686125, 233936768446, 1261, 1000]
PLAN-ROOT SINK
| output exprs: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END), rank()
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=1000
@@ -56,13 +56,13 @@ PLAN-ROOT SINK
12:TOP-N [LIMIT=100]
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) ASC NULLS LAST, rank() ASC NULLS LAST
| mem-estimate=9.38KB mem-reservation=0B thread-reservation=0
| tuple-ids=24 row-size=96B cardinality=100 cost=21075768581
| tuple-ids=24 row-size=96B cardinality=100 cost=861
| in pipelines: 12(GETNEXT), 09(OPEN)
|
11:SELECT
| predicates: rank() <= CAST(100 AS BIGINT)
| mem-estimate=0B mem-reservation=0B thread-reservation=0
| tuple-ids=22,21 row-size=100B cardinality=1.24G cost=12376017920
| tuple-ids=22,21 row-size=100B cardinality=200 cost=200
| in pipelines: 09(GETNEXT)
|
10:ANALYTIC
@@ -71,13 +71,15 @@ PLAN-ROOT SINK
| order by: aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22,21 row-size=100B cardinality=12.38G cost=12376017920
| tuple-ids=22,21 row-size=100B cardinality=200 cost=200
| in pipelines: 09(GETNEXT)
|
09:SORT
09:TOP-N
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC NULLS FIRST
| mem-estimate=50.00GB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=12.38G cost=54567099909
| limit with ties: 200
| source expr: rank() <= CAST(100 AS BIGINT)
| mem-estimate=17.97KB mem-reservation=0B thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=200 cost=233936768446
| in pipelines: 09(GETNEXT), 08(OPEN)
|
08:AGGREGATE [FINALIZE]
@@ -188,36 +190,36 @@ PLAN-ROOT SINK
tuple-ids=0 row-size=20B cardinality=8.64G(filtered from 8.64G) cost=2488301335
in pipelines: 00(GETNEXT)
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=3.79GB Threads=25
Per-Host Resource Estimates: Memory=138.28GB
Max Per-Host Resource Reservation: Memory=4.70GB Threads=27
Per-Host Resource Estimates: Memory=104.39GB
F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
| Per-Instance Resources: mem-estimate=4.29MB mem-reservation=4.00MB thread-reservation=1
| Per-Instance Resources: mem-estimate=4.10MB mem-reservation=4.00MB thread-reservation=1
| max-parallelism=1 segment-costs=[1044] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
PLAN-ROOT SINK
| output exprs: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END), rank()
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=1000
|
19:MERGING-EXCHANGE [UNPARTITIONED]
20:MERGING-EXCHANGE [UNPARTITIONED]
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) ASC NULLS LAST, rank() ASC NULLS LAST
| limit: 100
| mem-estimate=293.91KB mem-reservation=0B thread-reservation=0
| mem-estimate=98.59KB mem-reservation=0B thread-reservation=0
| tuple-ids=24 row-size=96B cardinality=100 cost=44
| in pipelines: 12(GETNEXT)
|
F05:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END)] hosts=10 instances=30 (adjusted from 120)
Per-Instance Resources: mem-estimate=16.68GB mem-reservation=16.00MB thread-reservation=1
max-parallelism=6120 segment-costs=[61179606532, 45827804421, 282] cpu-comparison-result=120 [max(30 (self) vs 120 (sum children))]
F05:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END)] hosts=10 instances=10 (adjusted from 120)
Per-Instance Resources: mem-estimate=5.30MB mem-reservation=4.00MB thread-reservation=1
max-parallelism=10 segment-costs=[967, 1261, 282] cpu-comparison-result=120 [max(10 (self) vs 120 (sum children))]
12:TOP-N [LIMIT=100]
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) ASC NULLS LAST, rank() ASC NULLS LAST
| mem-estimate=9.38KB mem-reservation=0B thread-reservation=0
| tuple-ids=24 row-size=96B cardinality=100 cost=21075768581
| in pipelines: 12(GETNEXT), 09(OPEN)
| tuple-ids=24 row-size=96B cardinality=100 cost=861
| in pipelines: 12(GETNEXT), 19(OPEN)
|
11:SELECT
| predicates: rank() <= CAST(100 AS BIGINT)
| mem-estimate=0B mem-reservation=0B thread-reservation=0
| tuple-ids=22,21 row-size=100B cardinality=1.24G cost=12376017920
| in pipelines: 09(GETNEXT)
| tuple-ids=22,21 row-size=100B cardinality=200 cost=200
| in pipelines: 19(GETNEXT)
|
10:ANALYTIC
| functions: rank()
@@ -225,27 +227,36 @@ max-parallelism=6120 segment-costs=[61179606532, 45827804421, 282] cpu-compariso
| order by: aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22,21 row-size=100B cardinality=12.38G cost=12376017920
| in pipelines: 09(GETNEXT)
| tuple-ids=22,21 row-size=100B cardinality=200 cost=200
| in pipelines: 19(GETNEXT)
|
09:SORT
19:TOP-N
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC NULLS FIRST
| mem-estimate=16.67GB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=12.38G cost=54567099909
| in pipelines: 09(GETNEXT), 08(OPEN)
| limit with ties: 200
| mem-estimate=17.97KB mem-reservation=0B thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=200 cost=861
| in pipelines: 19(GETNEXT), 09(OPEN)
|
18:EXCHANGE [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END)]
| mem-estimate=12.81MB mem-reservation=0B thread-reservation=0
| tuple-ids=17 row-size=92B cardinality=12.38G cost=6612506623
| in pipelines: 08(GETNEXT)
| mem-estimate=1.28MB mem-reservation=0B thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=200 cost=106
| in pipelines: 09(GETNEXT)
|
F04:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 15 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.store.s_store_id) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END)] hosts=10 instances=70 (adjusted from 120)
Per-Instance Resources: mem-estimate=7.14GB mem-reservation=244.75MB thread-reservation=1
max-parallelism=26630 segment-costs=[266227423359, 73050686125, 233936768446, 1288] cpu-comparison-result=120 [max(70 (self) vs 120 (sum children))]
09:TOP-N
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC NULLS FIRST
| limit with ties: 200
| source expr: rank() <= CAST(100 AS BIGINT)
| mem-estimate=17.97KB mem-reservation=0B thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=200 cost=233936768446
| in pipelines: 09(GETNEXT), 08(OPEN)
|
F04:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 15 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.store.s_store_id) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END)] hosts=10 instances=30 (adjusted from 120)
Per-Instance Resources: mem-estimate=11.98GB mem-reservation=244.75MB thread-reservation=1
max-parallelism=26630 segment-costs=[266227423359, 73050686125, 79701558405] cpu-comparison-result=120 [max(30 (self) vs 120 (sum children))]
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (CAST(8 AS INT), CAST(9 AS INT), CAST(10 AS INT), CAST(11 AS INT), CAST(12 AS INT), CAST(13 AS INT), CAST(14 AS INT), CAST(15 AS INT), CAST(16 AS INT)), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(9 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(10 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(11 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(12 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(13 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(14 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(15 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(16 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END)
| group by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(13 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(14 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(15 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(13 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(14 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(13 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN CAST(11 AS INT) THEN NULL WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN CAST(10 AS INT) THEN NULL WHEN CAST(11 AS INT) THEN NULL WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN CAST(9 AS INT) THEN NULL WHEN CAST(10 AS INT) THEN NULL WHEN CAST(11 AS INT) THEN NULL WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN CAST(8 AS INT) WHEN CAST(9 AS INT) THEN CAST(9 AS INT) WHEN CAST(10 AS INT) THEN CAST(10 AS INT) WHEN CAST(11 AS INT) THEN CAST(11 AS INT) WHEN CAST(12 AS INT) THEN CAST(12 AS INT) WHEN CAST(13 AS INT) THEN CAST(13 AS INT) WHEN CAST(14 AS INT) THEN CAST(14 AS INT) WHEN CAST(15 AS INT) THEN CAST(15 AS INT) WHEN CAST(16 AS INT) THEN CAST(16 AS INT) END
| mem-estimate=669.83MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| mem-estimate=578.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=17 row-size=92B cardinality=12.38G cost=73050686125
| in pipelines: 08(GETNEXT), 17(OPEN)
|
@@ -277,7 +288,7 @@ max-parallelism=26630 segment-costs=[266227423359, 73050686125, 79701558405] cpu
| Class 8
| output: sum:merge(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0))
| group by: NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| mem-estimate=11.33GB mem-reservation=210.75MB thread-reservation=0
| mem-estimate=6.57GB mem-reservation=210.75MB thread-reservation=0
| tuple-ids=8N,9N,10N,11N,12N,13N,14N,15N,16N row-size=1.09KB cardinality=12.38G cost=97683994945
| in pipelines: 17(GETNEXT), 00(OPEN)
|
@@ -288,7 +299,7 @@ max-parallelism=26630 segment-costs=[266227423359, 73050686125, 79701558405] cpu
|
F00:PLAN FRAGMENT [RANDOM] hosts=10 instances=120
Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
Per-Instance Resources: mem-estimate=4.31GB mem-reservation=219.00MB thread-reservation=1
Per-Instance Resources: mem-estimate=4.49GB mem-reservation=219.00MB thread-reservation=1
max-parallelism=1824 segment-costs=[257851731293, 2328086935759] cpu-comparison-result=120 [max(120 (self) vs 36 (sum children))]
07:AGGREGATE [STREAMING]
| Class 0
@@ -442,36 +453,36 @@ max-parallelism=1824 segment-costs=[257851731293, 2328086935759] cpu-comparison-
tuple-ids=0 row-size=20B cardinality=8.64G(filtered from 8.64G) cost=2488301335
in pipelines: 00(GETNEXT)
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=3.79GB Threads=25
Per-Host Resource Estimates: Memory=138.28GB
Max Per-Host Resource Reservation: Memory=4.70GB Threads=27
Per-Host Resource Estimates: Memory=104.39GB
F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
| Per-Instance Resources: mem-estimate=4.29MB mem-reservation=4.00MB thread-reservation=1
| Per-Instance Resources: mem-estimate=4.10MB mem-reservation=4.00MB thread-reservation=1
| max-parallelism=1 segment-costs=[1044] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
PLAN-ROOT SINK
| output exprs: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END), rank()
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=1000
|
19:MERGING-EXCHANGE [UNPARTITIONED]
20:MERGING-EXCHANGE [UNPARTITIONED]
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) ASC NULLS LAST, rank() ASC NULLS LAST
| limit: 100
| mem-estimate=293.91KB mem-reservation=0B thread-reservation=0
| mem-estimate=98.59KB mem-reservation=0B thread-reservation=0
| tuple-ids=24 row-size=96B cardinality=100 cost=44
| in pipelines: 12(GETNEXT)
|
F05:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END)] hosts=10 instances=30 (adjusted from 120)
Per-Instance Resources: mem-estimate=16.68GB mem-reservation=16.00MB thread-reservation=1
max-parallelism=6120 segment-costs=[61179606532, 45827804421, 282] cpu-comparison-result=120 [max(30 (self) vs 120 (sum children))]
F05:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END)] hosts=10 instances=10 (adjusted from 120)
Per-Instance Resources: mem-estimate=5.30MB mem-reservation=4.00MB thread-reservation=1
max-parallelism=10 segment-costs=[967, 1261, 282] cpu-comparison-result=120 [max(10 (self) vs 120 (sum children))]
12:TOP-N [LIMIT=100]
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_class WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 11 THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 10 THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 9 THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL WHEN 13 THEN NULL WHEN 14 THEN NULL WHEN 15 THEN NULL WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) ASC NULLS LAST, rank() ASC NULLS LAST
| mem-estimate=9.38KB mem-reservation=0B thread-reservation=0
| tuple-ids=24 row-size=96B cardinality=100 cost=21075768581
| in pipelines: 12(GETNEXT), 09(OPEN)
| tuple-ids=24 row-size=96B cardinality=100 cost=861
| in pipelines: 12(GETNEXT), 19(OPEN)
|
11:SELECT
| predicates: rank() <= CAST(100 AS BIGINT)
| mem-estimate=0B mem-reservation=0B thread-reservation=0
| tuple-ids=22,21 row-size=100B cardinality=1.24G cost=12376017920
| in pipelines: 09(GETNEXT)
| tuple-ids=22,21 row-size=100B cardinality=200 cost=200
| in pipelines: 19(GETNEXT)
|
10:ANALYTIC
| functions: rank()
@@ -479,27 +490,36 @@ max-parallelism=6120 segment-costs=[61179606532, 45827804421, 282] cpu-compariso
| order by: aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22,21 row-size=100B cardinality=12.38G cost=12376017920
| in pipelines: 09(GETNEXT)
| tuple-ids=22,21 row-size=100B cardinality=200 cost=200
| in pipelines: 19(GETNEXT)
|
09:SORT
19:TOP-N
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC NULLS FIRST
| mem-estimate=16.67GB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=12.38G cost=54567099909
| in pipelines: 09(GETNEXT), 08(OPEN)
| limit with ties: 200
| mem-estimate=17.97KB mem-reservation=0B thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=200 cost=861
| in pipelines: 19(GETNEXT), 09(OPEN)
|
18:EXCHANGE [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END)]
| mem-estimate=12.81MB mem-reservation=0B thread-reservation=0
| tuple-ids=17 row-size=92B cardinality=12.38G cost=6612506623
| in pipelines: 08(GETNEXT)
| mem-estimate=1.28MB mem-reservation=0B thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=200 cost=106
| in pipelines: 09(GETNEXT)
|
F04:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 15 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.store.s_store_id) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END)] hosts=10 instances=70 (adjusted from 120)
Per-Instance Resources: mem-estimate=7.14GB mem-reservation=244.75MB thread-reservation=1
max-parallelism=26630 segment-costs=[266227423359, 73050686125, 233936768446, 1288] cpu-comparison-result=120 [max(70 (self) vs 120 (sum children))]
09:TOP-N
| order by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 9 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 10 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 11 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 12 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 13 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 14 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 15 THEN tpcds_partitioned_parquet_snap.item.i_category WHEN 16 THEN NULL END ASC NULLS LAST, aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (8, 9, 10, 11, 12, 13, 14, 15, 16), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 9 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 10 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 11 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 12 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 13 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 14 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 15 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN 16 THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END) DESC NULLS FIRST
| limit with ties: 200
| source expr: rank() <= CAST(100 AS BIGINT)
| mem-estimate=17.97KB mem-reservation=0B thread-reservation=0
| tuple-ids=22 row-size=92B cardinality=200 cost=233936768446
| in pipelines: 09(GETNEXT), 08(OPEN)
|
F04:PLAN FRAGMENT [HASH(CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 15 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_category) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 14 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_class) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 13 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_brand) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 12 THEN murmur_hash(tpcds_partitioned_parquet_snap.item.i_product_name) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 11 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_year) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 10 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_qoy) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 9 THEN murmur_hash(tpcds_partitioned_parquet_snap.date_dim.d_moy) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END,CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN 8 THEN murmur_hash(tpcds_partitioned_parquet_snap.store.s_store_id) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 14 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) WHEN 16 THEN murmur_hash(NULL) END)] hosts=10 instances=30 (adjusted from 120)
Per-Instance Resources: mem-estimate=11.98GB mem-reservation=244.75MB thread-reservation=1
max-parallelism=26630 segment-costs=[266227423359, 73050686125, 79701558405] cpu-comparison-result=120 [max(30 (self) vs 120 (sum children))]
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(16,8,9,10,11,12,13,14,15) IN (CAST(8 AS INT), CAST(9 AS INT), CAST(10 AS INT), CAST(11 AS INT), CAST(12 AS INT), CAST(13 AS INT), CAST(14 AS INT), CAST(15 AS INT), CAST(16 AS INT)), CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(9 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(10 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(11 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(12 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(13 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(14 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(15 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) WHEN CAST(16 AS INT) THEN sum(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0)) END)
| group by: CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(13 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(14 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(15 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_category WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(13 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(14 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_class WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(13 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_brand WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(12 AS INT) THEN tpcds_partitioned_parquet_snap.item.i_product_name WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(11 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_year WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN CAST(10 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_qoy WHEN CAST(11 AS INT) THEN NULL WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN CAST(9 AS INT) THEN tpcds_partitioned_parquet_snap.date_dim.d_moy WHEN CAST(10 AS INT) THEN NULL WHEN CAST(11 AS INT) THEN NULL WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN tpcds_partitioned_parquet_snap.store.s_store_id WHEN CAST(9 AS INT) THEN NULL WHEN CAST(10 AS INT) THEN NULL WHEN CAST(11 AS INT) THEN NULL WHEN CAST(12 AS INT) THEN NULL WHEN CAST(13 AS INT) THEN NULL WHEN CAST(14 AS INT) THEN NULL WHEN CAST(15 AS INT) THEN NULL WHEN CAST(16 AS INT) THEN NULL END, CASE valid_tid(16,8,9,10,11,12,13,14,15) WHEN CAST(8 AS INT) THEN CAST(8 AS INT) WHEN CAST(9 AS INT) THEN CAST(9 AS INT) WHEN CAST(10 AS INT) THEN CAST(10 AS INT) WHEN CAST(11 AS INT) THEN CAST(11 AS INT) WHEN CAST(12 AS INT) THEN CAST(12 AS INT) WHEN CAST(13 AS INT) THEN CAST(13 AS INT) WHEN CAST(14 AS INT) THEN CAST(14 AS INT) WHEN CAST(15 AS INT) THEN CAST(15 AS INT) WHEN CAST(16 AS INT) THEN CAST(16 AS INT) END
| mem-estimate=669.83MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| mem-estimate=578.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=17 row-size=92B cardinality=12.38G cost=73050686125
| in pipelines: 08(GETNEXT), 17(OPEN)
|
@@ -531,7 +551,7 @@ max-parallelism=26630 segment-costs=[266227423359, 73050686125, 79701558405] cpu
| Class 8
| output: sum:merge(coalesce(multiply(tpcds_partitioned_parquet_snap.store_sales.ss_sales_price, tpcds_partitioned_parquet_snap.store_sales.ss_quantity), 0))
| group by: NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| mem-estimate=11.33GB mem-reservation=210.75MB thread-reservation=0
| mem-estimate=6.57GB mem-reservation=210.75MB thread-reservation=0
| tuple-ids=8N,9N,10N,11N,12N,13N,14N,15N,16N row-size=1.09KB cardinality=12.38G cost=97683994945
| in pipelines: 17(GETNEXT), 00(OPEN)
|
@@ -542,7 +562,7 @@ max-parallelism=26630 segment-costs=[266227423359, 73050686125, 79701558405] cpu
|
F00:PLAN FRAGMENT [RANDOM] hosts=10 instances=120
Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
Per-Instance Resources: mem-estimate=4.31GB mem-reservation=219.00MB thread-reservation=1
Per-Instance Resources: mem-estimate=4.49GB mem-reservation=219.00MB thread-reservation=1
max-parallelism=1824 segment-costs=[257851731293, 2328086935759] cpu-comparison-result=120 [max(120 (self) vs 36 (sum children))]
07:AGGREGATE [STREAMING]
| Class 0

View File

@@ -42,7 +42,7 @@ Max Per-Host Resource Reservation: Memory=37.40MB Threads=1
Per-Host Resource Estimates: Memory=115MB
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
| Per-Instance Resources: mem-estimate=114.81MB mem-reservation=37.40MB thread-reservation=1 runtime-filters-memory=5.00MB
| max-parallelism=1 segment-costs=[11583582477, 49, 11797402272, 8242, 3284, 9372, 500]
| max-parallelism=1 segment-costs=[11583582477, 79, 44672813328, 8242, 3284, 9372, 500]
PLAN-ROOT SINK
| output exprs: aggif(valid_tid(19,20,21) IN (19, 20, 21), CASE valid_tid(19,20,21) WHEN 19 THEN sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit) WHEN 20 THEN sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit) WHEN 21 THEN sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit) END), CASE valid_tid(19,20,21) WHEN 19 THEN tpcds_partitioned_parquet_snap.store.s_state WHEN 20 THEN tpcds_partitioned_parquet_snap.store.s_state WHEN 21 THEN NULL END, CASE valid_tid(19,20,21) WHEN 19 THEN tpcds_partitioned_parquet_snap.store.s_county WHEN 20 THEN NULL WHEN 21 THEN NULL END, add(CAST(aggif(valid_tid(19,20,21) IN (19, 20, 21), CASE valid_tid(19,20,21) WHEN 19 THEN 0 WHEN 20 THEN 0 WHEN 21 THEN 1 END) AS SMALLINT), CAST(aggif(valid_tid(19,20,21) IN (19, 20, 21), CASE valid_tid(19,20,21) WHEN 19 THEN 0 WHEN 20 THEN 1 WHEN 21 THEN 1 END) AS SMALLINT)), rank()
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=500
@@ -86,7 +86,7 @@ PLAN-ROOT SINK
| output: sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit)
| group by: NULL, NULL
| mem-estimate=30.00MB mem-reservation=5.81MB thread-reservation=0
| tuple-ids=19N,20N,21N row-size=138B cardinality=1.36K cost=7460644055
| tuple-ids=19N,20N,21N row-size=138B cardinality=1.36K cost=35616411022
| in pipelines: 15(GETNEXT), 00(OPEN)
|
14:HASH JOIN [INNER JOIN]
@@ -94,7 +94,7 @@ PLAN-ROOT SINK
| fk/pk conjuncts: tpcds_partitioned_parquet_snap.store_sales.ss_store_sk = tpcds_partitioned_parquet_snap.store.s_store_sk
| runtime filters: RF000[bloom] <- tpcds_partitioned_parquet_snap.store.s_store_sk, RF001[min_max] <- tpcds_partitioned_parquet_snap.store.s_store_sk
| mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
| tuple-ids=0,2,4,17,16 row-size=102B cardinality=1.81G cost=803070546
| tuple-ids=0,2,4,17,16 row-size=102B cardinality=8.64G cost=3781700983
| in pipelines: 00(GETNEXT), 03(OPEN)
|
|--13:HASH JOIN [INNER JOIN]
@@ -102,13 +102,13 @@ PLAN-ROOT SINK
| | fk/pk conjuncts: none
| | runtime filters: RF004[bloom] <- tpcds_partitioned_parquet_snap.store_0.s_state, RF005[min_max] <- tpcds_partitioned_parquet_snap.store_0.s_state
| | mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
| | tuple-ids=4,17,16 row-size=82B cardinality=140 cost=64
| | tuple-ids=4,17,16 row-size=82B cardinality=1.35K cost=619
| | in pipelines: 03(GETNEXT), 10(OPEN)
| |
| |--12:SELECT
| | | predicates: rank() <= CAST(5 AS BIGINT)
| | | mem-estimate=0B mem-reservation=0B thread-reservation=0
| | | tuple-ids=17,16 row-size=38B cardinality=3 cost=29
| | | tuple-ids=17,16 row-size=38B cardinality=29 cost=29
| | | in pipelines: 10(GETNEXT)
| | |
| | 11:ANALYTIC
@@ -120,10 +120,13 @@ PLAN-ROOT SINK
| | | tuple-ids=17,16 row-size=38B cardinality=29 cost=29
| | | in pipelines: 10(GETNEXT)
| | |
| | 10:SORT
| | | order by: tpcds_partitioned_parquet_snap.store_0.s_state ASC NULLS LAST, sum(tpcds_partitioned_parquet_snap.store_sales_0.ss_net_profit) DESC NULLS FIRST
| | 10:TOP-N
| | | partition by: tpcds_partitioned_parquet_snap.store_0.s_state
| | | order by: sum(tpcds_partitioned_parquet_snap.store_sales_0.ss_net_profit) DESC NULLS FIRST
| | | partition limit: 5 (include ties)
| | | source expr: rank() <= CAST(5 AS BIGINT)
| | | mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| | | tuple-ids=17 row-size=30B cardinality=29 cost=49
| | | tuple-ids=17 row-size=30B cardinality=29 cost=79
| | | in pipelines: 10(GETNEXT), 09(OPEN)
| | |
| | 09:AGGREGATE [FINALIZE]
@@ -192,7 +195,7 @@ PLAN-ROOT SINK
| columns: all
| extrapolated-rows=disabled max-scan-range-rows=1.35K
| mem-estimate=16.00MB mem-reservation=24.00KB thread-reservation=0
| tuple-ids=4 row-size=44B cardinality=140(filtered from 1.35K) cost=387
| tuple-ids=4 row-size=44B cardinality=1.35K cost=387
| in pipelines: 03(GETNEXT)
|
02:HASH JOIN [INNER JOIN]
@@ -200,7 +203,7 @@ PLAN-ROOT SINK
| fk/pk conjuncts: tpcds_partitioned_parquet_snap.store_sales.ss_sold_date_sk = tpcds_partitioned_parquet_snap.date_dim.d_date_sk
| runtime filters: RF002[bloom] <- tpcds_partitioned_parquet_snap.date_dim.d_date_sk
| mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
| tuple-ids=0,2 row-size=20B cardinality=1.85G(filtered from 8.64G) cost=2040693841
| tuple-ids=0,2 row-size=20B cardinality=8.64G cost=3781706938
| in pipelines: 00(GETNEXT), 01(OPEN)
|
|--01:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim]
@@ -225,7 +228,7 @@ PLAN-ROOT SINK
columns: all
extrapolated-rows=disabled max-scan-range-rows=390.22M
mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
tuple-ids=0 row-size=12B cardinality=1.85G(filtered from 8.64G) cost=1492980801
tuple-ids=0 row-size=12B cardinality=8.64G cost=1492980801
in pipelines: 00(GETNEXT)
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=437.66MB Threads=38
@@ -305,7 +308,7 @@ max-parallelism=10 segment-costs=[365183, 8242, 4743] cpu-comparison-result=142
F00:PLAN FRAGMENT [RANDOM] hosts=10 instances=120
Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
Per-Instance Resources: mem-estimate=51.86MB mem-reservation=14.00MB thread-reservation=1
max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=142 [max(120 (self) vs 142 (sum children))]
max-parallelism=1824 segment-costs=[44673526136, 1707075] cpu-comparison-result=142 [max(120 (self) vs 142 (sum children))]
15:AGGREGATE [STREAMING]
| Class 0
| output: sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit)
@@ -317,7 +320,7 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| output: sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit)
| group by: NULL, NULL
| mem-estimate=30.00MB mem-reservation=6.00MB thread-reservation=0
| tuple-ids=19N,20N,21N row-size=138B cardinality=163.68K cost=7461379103
| tuple-ids=19N,20N,21N row-size=138B cardinality=163.68K cost=35617146069
| in pipelines: 00(GETNEXT)
|
14:HASH JOIN [INNER JOIN, BROADCAST]
@@ -325,32 +328,32 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| hash predicates: tpcds_partitioned_parquet_snap.store_sales.ss_store_sk = tpcds_partitioned_parquet_snap.store.s_store_sk
| fk/pk conjuncts: tpcds_partitioned_parquet_snap.store_sales.ss_store_sk = tpcds_partitioned_parquet_snap.store.s_store_sk
| mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
| tuple-ids=0,2,17,16,4 row-size=102B cardinality=1.81G cost=2544083503
| tuple-ids=0,2,17,16,4 row-size=102B cardinality=8.64G cost=3781699633
| in pipelines: 00(GETNEXT), 10(OPEN)
|
|--F11:PLAN FRAGMENT [RANDOM] hosts=10 instances=10
| | Per-Instance Resources: mem-estimate=24.39MB mem-reservation=24.25MB thread-reservation=1 runtime-filters-memory=1.00MB
| | max-parallelism=10 segment-costs=[320] cpu-comparison-result=131 [max(20 (self) vs 131 (sum children))]
| | Per-Instance Resources: mem-estimate=25.27MB mem-reservation=24.25MB thread-reservation=1 runtime-filters-memory=1.00MB
| | max-parallelism=10 segment-costs=[3140] cpu-comparison-result=131 [max(20 (self) vs 131 (sum children))]
| JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: tpcds_partitioned_parquet_snap.store.s_store_sk
| | runtime filters: RF000[bloom] <- tpcds_partitioned_parquet_snap.store.s_store_sk, RF001[min_max] <- tpcds_partitioned_parquet_snap.store.s_store_sk
| | mem-estimate=23.25MB mem-reservation=23.25MB spill-buffer=64.00KB thread-reservation=0 cost=140
| | mem-estimate=23.25MB mem-reservation=23.25MB spill-buffer=64.00KB thread-reservation=0 cost=1350
| |
| 27:EXCHANGE [BROADCAST]
| | mem-estimate=139.65KB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16,4 row-size=82B cardinality=140 cost=180
| | mem-estimate=1.02MB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16,4 row-size=82B cardinality=1.35K cost=1790
| | in pipelines: 10(GETNEXT)
| |
| F07:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)] hosts=10 instances=10 (adjusted from 120)
| Per-Instance Resources: mem-estimate=391.79KB mem-reservation=0B thread-reservation=1
| max-parallelism=10 segment-costs=[66]
| max-parallelism=10 segment-costs=[647]
| 13:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash-table-id=01
| | hash predicates: tpcds_partitioned_parquet_snap.store_0.s_state = tpcds_partitioned_parquet_snap.store.s_state
| | fk/pk conjuncts: none
| | mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
| | tuple-ids=17,16,4 row-size=82B cardinality=140 cost=26
| | tuple-ids=17,16,4 row-size=82B cardinality=1.35K cost=252
| | in pipelines: 10(GETNEXT), 03(OPEN)
| |
| |--F12:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)] hosts=10 instances=10 (adjusted from 120)
@@ -381,16 +384,16 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| |
| 25:EXCHANGE [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)]
| | mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16 row-size=38B cardinality=3 cost=0
| | tuple-ids=17,16 row-size=38B cardinality=29 cost=9
| | in pipelines: 10(GETNEXT)
| |
| F05:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)] hosts=10 instances=10 (adjusted from 120)
| Per-Instance Resources: mem-estimate=26.00MB mem-reservation=17.94MB thread-reservation=1
| max-parallelism=10 segment-costs=[1959, 49, 68] cpu-comparison-result=120 [max(10 (self) vs 120 (sum children))]
| max-parallelism=10 segment-costs=[1959, 79, 158] cpu-comparison-result=120 [max(10 (self) vs 120 (sum children))]
| 12:SELECT
| | predicates: rank() <= CAST(5 AS BIGINT)
| | mem-estimate=0B mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16 row-size=38B cardinality=3 cost=29
| | tuple-ids=17,16 row-size=38B cardinality=29 cost=29
| | in pipelines: 10(GETNEXT)
| |
| 11:ANALYTIC
@@ -402,10 +405,13 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| | tuple-ids=17,16 row-size=38B cardinality=29 cost=29
| | in pipelines: 10(GETNEXT)
| |
| 10:SORT
| | order by: tpcds_partitioned_parquet_snap.store_0.s_state ASC NULLS LAST, sum(tpcds_partitioned_parquet_snap.store_sales_0.ss_net_profit) DESC NULLS FIRST
| 10:TOP-N
| | partition by: tpcds_partitioned_parquet_snap.store_0.s_state
| | order by: sum(tpcds_partitioned_parquet_snap.store_sales_0.ss_net_profit) DESC NULLS FIRST
| | partition limit: 5 (include ties)
| | source expr: rank() <= CAST(5 AS BIGINT)
| | mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17 row-size=30B cardinality=29 cost=49
| | tuple-ids=17 row-size=30B cardinality=29 cost=79
| | in pipelines: 10(GETNEXT), 24(OPEN)
| |
| 24:AGGREGATE [FINALIZE]
@@ -643,7 +649,7 @@ max-parallelism=10 segment-costs=[365183, 8242, 4743] cpu-comparison-result=142
F00:PLAN FRAGMENT [RANDOM] hosts=10 instances=120
Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
Per-Instance Resources: mem-estimate=51.86MB mem-reservation=14.00MB thread-reservation=1
max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=142 [max(120 (self) vs 142 (sum children))]
max-parallelism=1824 segment-costs=[44673526136, 1707075] cpu-comparison-result=142 [max(120 (self) vs 142 (sum children))]
15:AGGREGATE [STREAMING]
| Class 0
| output: sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit)
@@ -655,7 +661,7 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| output: sum(tpcds_partitioned_parquet_snap.store_sales.ss_net_profit)
| group by: NULL, NULL
| mem-estimate=30.00MB mem-reservation=6.00MB thread-reservation=0
| tuple-ids=19N,20N,21N row-size=138B cardinality=163.68K cost=7461379103
| tuple-ids=19N,20N,21N row-size=138B cardinality=163.68K cost=35617146069
| in pipelines: 00(GETNEXT)
|
14:HASH JOIN [INNER JOIN, BROADCAST]
@@ -663,32 +669,32 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| hash predicates: tpcds_partitioned_parquet_snap.store_sales.ss_store_sk = tpcds_partitioned_parquet_snap.store.s_store_sk
| fk/pk conjuncts: tpcds_partitioned_parquet_snap.store_sales.ss_store_sk = tpcds_partitioned_parquet_snap.store.s_store_sk
| mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
| tuple-ids=0,2,17,16,4 row-size=102B cardinality=1.81G cost=2544083503
| tuple-ids=0,2,17,16,4 row-size=102B cardinality=8.64G cost=3781699633
| in pipelines: 00(GETNEXT), 10(OPEN)
|
|--F11:PLAN FRAGMENT [RANDOM] hosts=10 instances=10
| | Per-Instance Resources: mem-estimate=24.39MB mem-reservation=24.25MB thread-reservation=1 runtime-filters-memory=1.00MB
| | max-parallelism=10 segment-costs=[320] cpu-comparison-result=131 [max(20 (self) vs 131 (sum children))]
| | Per-Instance Resources: mem-estimate=25.27MB mem-reservation=24.25MB thread-reservation=1 runtime-filters-memory=1.00MB
| | max-parallelism=10 segment-costs=[3140] cpu-comparison-result=131 [max(20 (self) vs 131 (sum children))]
| JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: tpcds_partitioned_parquet_snap.store.s_store_sk
| | runtime filters: RF000[bloom] <- tpcds_partitioned_parquet_snap.store.s_store_sk, RF001[min_max] <- tpcds_partitioned_parquet_snap.store.s_store_sk
| | mem-estimate=23.25MB mem-reservation=23.25MB spill-buffer=64.00KB thread-reservation=0 cost=140
| | mem-estimate=23.25MB mem-reservation=23.25MB spill-buffer=64.00KB thread-reservation=0 cost=1350
| |
| 27:EXCHANGE [BROADCAST]
| | mem-estimate=139.65KB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16,4 row-size=82B cardinality=140 cost=180
| | mem-estimate=1.02MB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16,4 row-size=82B cardinality=1.35K cost=1790
| | in pipelines: 10(GETNEXT)
| |
| F07:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)] hosts=10 instances=10 (adjusted from 120)
| Per-Instance Resources: mem-estimate=391.79KB mem-reservation=0B thread-reservation=1
| max-parallelism=10 segment-costs=[66]
| max-parallelism=10 segment-costs=[647]
| 13:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash-table-id=01
| | hash predicates: tpcds_partitioned_parquet_snap.store_0.s_state = tpcds_partitioned_parquet_snap.store.s_state
| | fk/pk conjuncts: none
| | mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
| | tuple-ids=17,16,4 row-size=82B cardinality=140 cost=26
| | tuple-ids=17,16,4 row-size=82B cardinality=1.35K cost=252
| | in pipelines: 10(GETNEXT), 03(OPEN)
| |
| |--F12:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)] hosts=10 instances=10 (adjusted from 120)
@@ -719,16 +725,16 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| |
| 25:EXCHANGE [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)]
| | mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16 row-size=38B cardinality=3 cost=0
| | tuple-ids=17,16 row-size=38B cardinality=29 cost=9
| | in pipelines: 10(GETNEXT)
| |
| F05:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.store_0.s_state)] hosts=10 instances=10 (adjusted from 120)
| Per-Instance Resources: mem-estimate=26.00MB mem-reservation=17.94MB thread-reservation=1
| max-parallelism=10 segment-costs=[1959, 49, 68] cpu-comparison-result=120 [max(10 (self) vs 120 (sum children))]
| max-parallelism=10 segment-costs=[1959, 79, 158] cpu-comparison-result=120 [max(10 (self) vs 120 (sum children))]
| 12:SELECT
| | predicates: rank() <= CAST(5 AS BIGINT)
| | mem-estimate=0B mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16 row-size=38B cardinality=3 cost=29
| | tuple-ids=17,16 row-size=38B cardinality=29 cost=29
| | in pipelines: 10(GETNEXT)
| |
| 11:ANALYTIC
@@ -740,10 +746,13 @@ max-parallelism=1530 segment-costs=[15280143040, 1707075] cpu-comparison-result=
| | tuple-ids=17,16 row-size=38B cardinality=29 cost=29
| | in pipelines: 10(GETNEXT)
| |
| 10:SORT
| | order by: tpcds_partitioned_parquet_snap.store_0.s_state ASC NULLS LAST, sum(tpcds_partitioned_parquet_snap.store_sales_0.ss_net_profit) DESC NULLS FIRST
| 10:TOP-N
| | partition by: tpcds_partitioned_parquet_snap.store_0.s_state
| | order by: sum(tpcds_partitioned_parquet_snap.store_sales_0.ss_net_profit) DESC NULLS FIRST
| | partition limit: 5 (include ties)
| | source expr: rank() <= CAST(5 AS BIGINT)
| | mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17 row-size=30B cardinality=29 cost=49
| | tuple-ids=17 row-size=30B cardinality=29 cost=79
| | in pipelines: 10(GETNEXT), 24(OPEN)
| |
| 24:AGGREGATE [FINALIZE]