71 lines
2.1 KiB
Plaintext
71 lines
2.1 KiB
Plaintext
# name: benchmark/micro/cte/stacked_materialized_cte.benchmark
|
|
# description: Benchmark of stacked materialized CTEs
|
|
# group: [cte]
|
|
|
|
name Stacked Materialized CTE
|
|
group micro
|
|
subgroup cte
|
|
|
|
load
|
|
create table t1 as select range id from range(1000000);
|
|
|
|
run
|
|
with
|
|
mat_t1 as materialized (select * from t1),
|
|
mat_t2 as materialized (select * from mat_t1),
|
|
mat_t3 as materialized (select * from mat_t2 where id not in (
|
|
select id % 20 from mat_t2
|
|
)),
|
|
mat_t4 as materialized (select * from mat_t1 where id not in (
|
|
select (id % 20) + 20 from mat_t2
|
|
UNION ALL
|
|
select (id % 20) + 40 from mat_t3
|
|
)),
|
|
mat_t5 as materialized (select * from mat_t1 where id not in (
|
|
select (id % 20) + 20 from mat_t2
|
|
UNION ALL
|
|
select (id % 20) + 40 from mat_t3
|
|
UNION ALL
|
|
select (id % 20) + 60 from mat_t4
|
|
)),
|
|
mat_t6 as materialized (select * from mat_t1 where id not in (
|
|
select (id % 20) + 20 from mat_t2
|
|
UNION ALL
|
|
select (id % 20) + 40 from mat_t3
|
|
UNION ALL
|
|
select (id % 20) + 60 from mat_t4
|
|
UNION ALL
|
|
select (id % 20) + 80 from mat_t5
|
|
)),
|
|
mat_t7 as materialized (select * from mat_t1 where id not in (
|
|
select (id % 20) + 20 from mat_t2
|
|
UNION ALL
|
|
select (id % 20) + 40 from mat_t3
|
|
UNION ALL
|
|
select (id % 20) + 60 from mat_t4
|
|
UNION ALL
|
|
select (id % 20) + 80 from mat_t5
|
|
UNION ALL
|
|
select (id % 20) + 80 from mat_t6
|
|
)),
|
|
mat_t8 as materialized (select * from mat_t1 where id not in (
|
|
select (id % 20) + 20 from mat_t2
|
|
UNION ALL
|
|
select (id % 20) + 40 from mat_t3
|
|
UNION ALL
|
|
select (id % 20) + 60 from mat_t4
|
|
UNION ALL
|
|
select (id % 20) + 80 from mat_t5
|
|
UNION ALL
|
|
select (id % 20) + 80 from mat_t6
|
|
UNION ALL
|
|
select (id % 20) + 80 from mat_t7
|
|
))
|
|
Select * from mat_t1 UNION ALL
|
|
select * from mat_t2 UNION ALL
|
|
select * from mat_t3 UNION ALL
|
|
select * from mat_t4 UNION ALL
|
|
select * from mat_t5 UNION ALL
|
|
select * from mat_t6 UNION ALL
|
|
select * from mat_t7 UNION ALL
|
|
select * from mat_t8; |