-- Tags: no-object-storage, no-parallel, no-fasttest -- no-object-storage: s3 has 20 more threads -- no-parallel: it checks the number of threads, which can be lowered in presence of other queries -- avoid settings randomization by clickhouse-test set max_threads = 10; -- more blocks to process set max_block_size = 10; set min_insert_block_size_rows = 10; set materialized_views_ignore_errors = 1; drop table if exists testX; drop table if exists testXA; drop table if exists testXB; drop table if exists testXC; create table testX (A Int64) engine=MergeTree order by tuple(); create materialized view testXA engine=MergeTree order by tuple() as select sleep(0.1) from testX; create materialized view testXB engine=MergeTree order by tuple() as select sleep(0.2), throwIf(A=1) from testX; create materialized view testXC engine=MergeTree order by tuple() as select sleep(0.1) from testX; {% set count = namespace(value=0) %} -- { echoOn } {% for parallel_view_processing in [0, 1] %} {% for optimize_trivial_insert_select in [0, 1] %} {% for max_insert_threads in [0, 5] %} {% set count.value = count.value + 1 %} select 'optimize_trivial_insert_select={{ optimize_trivial_insert_select }}', 'max_insert_threads={{ max_insert_threads }}', 'iteration_num={{ iteration_num }}'; insert into testX select number from numbers(200) settings send_logs_level='fatal', insert_deduplication_token='UT_{{ count.value }}', log_queries=1, parallel_view_processing={{ parallel_view_processing }}, optimize_trivial_insert_select={{ optimize_trivial_insert_select }}, max_insert_threads={{ max_insert_threads }}; system flush logs; select peak_threads_usage from system.query_log where current_database = currentDatabase() and type != 'QueryStart' and query like '%insert into testX %' and Settings['parallel_view_processing'] = '{{ parallel_view_processing }}' and Settings['optimize_trivial_insert_select'] = '{{ optimize_trivial_insert_select }}' and Settings['max_insert_threads'] = '{{ max_insert_threads }}'; select count() from testX; select count() from testXA; select count() from testXC; {% endfor %} {% endfor %} {% endfor %} -- { echoOff } drop table testX; drop view testXA; drop view testXB; drop view testXC;