ClickHouse/tests/performance
2024-12-05 00:29:01 +00:00
..
scripts don't reserve too much 2024-11-10 19:16:19 +01:00
agg_functions_argmin_argmax.xml
agg_functions_min_max_any.xml
aggregate_functions_deserialization.xml improve performance of deserialization of aggregate functions 2024-12-05 00:29:01 +00:00
aggregate_functions_of_group_by_keys.xml
aggregate_with_serialized_method.xml Improve the performance of serialized aggregation method when involving multiple [nullable] columns. 2024-02-29 21:48:15 +08:00
aggregating_merge_tree_simple_aggregate_function_string.xml Enable allow_suspicious_primary_key for perf tests that need it 2024-03-26 11:09:03 +00:00
aggregating_merge_tree.xml
aggregation_by_partitions.xml
aggregation_external.xml
aggregation_in_order_2.xml
aggregation_in_order.xml
aggregation_overflow.xml
all_join_opt.xml squash small blocks before join transforms 2024-11-03 11:25:26 +01:00
alter_select.xml Reduce overhead of the mutations for SELECTs (v2) 2024-04-25 14:35:21 +02:00
analyze_array_tuples.xml
and_function.xml
any_anyLast.xml
arithmetic_operations_in_aggr_func.xml
arithmetic.xml
array_auc.xml
array_element.xml
array_fill.xml
array_fold.xml
array_index_low_cardinality_numbers.xml Update tests 2024-02-14 12:48:05 +00:00
array_index_low_cardinality_strings.xml
array_join.xml add perf test 2024-03-13 18:57:33 +08:00
array_reduce.xml impl 2024-06-19 16:41:50 +01:00
arrow_format.xml
ascii.xml add more tests 2024-03-21 10:29:35 +08:00
asof.xml Fixed tests 2024-02-13 15:41:17 +03:00
async_remote_read.xml
avg_serialization.xml Add test 2024-11-30 18:39:56 +01:00
avg_weighted.xml Remove obsolete setting from tests 2024-11-10 23:43:10 +01:00
avg.xml
base64_hits.xml
base64.xml
basename.xml
bigint_arithm.xml
bigint_formatting.xml Add perf tests 2024-03-08 15:17:59 +01:00
bit_operations_fixed_string_numbers.xml
bit_operations_fixed_string.xml
bitmap_array_element.xml
bloom_filter_insert.xml
bloom_filter_select.xml
bounding_ratio.xml
casts.xml
cidr.xml
classification.xml
coalesce.xml Trivial optimize of function coalesce. (#59627) 2024-02-14 11:29:45 +01:00
codec_none.xml
codecs_float_insert.xml
codecs_float_select.xml
codecs_int_insert.xml
codecs_int_select.xml
collations.xml
column_array_filter.xml
column_array_replicate.xml
ColumnMap.xml
columns_hashing.xml
complex_array_creation.xml
concat_hits.xml
conditional.xml
consistent_hashes.xml
constant_column_comparison.xml
constant_column_search.xml
count_from_formats.xml
count.xml
countDigits.xml
countIf.xml
countMatches.xml
cpu_synthetic.xml
cryptographic_hashes.xml
date_parsing.xml
date_time_64.xml
date_time_long.xml
date_time_short.xml
datetime64_conversion.xml
datetime_comparison.xml
decimal_aggregates.xml Update tests/performance/decimal_aggregates.xml 2024-07-25 12:12:23 +02:00
decimal_casts.xml
decimal_format.xml
decimal_parse.xml
destroy_aggregate_states.xml
dict_join.xml
direct_dictionary.xml
distinct_combinator.xml
distinct_in_order.xml
distributed_aggregation_memory_efficient.xml
distributed_aggregation.xml
dotProduct.xml Implement const/non-const shortcut 2024-03-06 16:56:01 +00:00
empty_string_deserialization.xml
empty_string_serialization.xml
encodeXMLComponent.xml
encrypt_decrypt_empty_string.xml
entropy.xml
enum_in_set.xml
explain_ast.xml
extract.xml
file_table_function.xml
final_big_column.xml Fixups 2024-07-16 20:21:21 +00:00
final_with_lonely_parts.xml
fixed_string16.xml
flat_dictionary.xml
float_formatting.xml
float_mod.xml
float_parsing.xml
format_date_time.xml
format_readable.xml
formats_columns_sampling.xml
function_calculation_after_sorting_and_limit.xml
function_tokens.xml Fixups 2024-07-16 20:21:21 +00:00
functions_coding.xml
functions_geo.xml
functions_with_hash_tables.xml
fuse_sumcount.xml
fuzz_bits.xml
general_purpose_hashes_on_UUID.xml
general_purpose_hashes.xml
generate_table_function.xml Fix performance test about the generateRandom table function, supposedly 2024-07-23 02:30:45 +02:00
get_map_value.xml
grace_hash_join.xml
great_circle_dist.xml
group_array_moving_sum.xml
group_array_sorted.xml
group_by_consecutive_keys.xml
group_by_fixed_keys.xml
group_by_sundy_li.xml
groupby_onekey_nullable.xml
h3.xml
has_all.xml
hash_table_sizes_stats_small.xml
hash_table_sizes_stats.xml
hashed_array_dictionary.xml
hashed_dictionary_load_factor.xml
hashed_dictionary_sharded.xml
hashed_dictionary.xml
hashjoin_with_large_output.xml don't reserve too much 2024-11-10 19:16:19 +01:00
hierarchical_dictionaries.xml
if_array_num.xml
if_array_string.xml
if_string_const.xml
if_string_hits.xml
if_to_multiif.xml
if_transform_strings_to_enum.xml
if.xml
information_value.xml
injective_functions_inside_uniq.xml
insert_parallel.xml
insert_select_default_small_block.xml
insert_select_squashing_dynamic.xml Add perf tests for Dynamic and Variant 2024-07-30 14:54:42 +00:00
insert_select_squashing_variant.xml Add perf tests for Dynamic and Variant 2024-07-30 14:54:42 +00:00
insert_select_squashing.xml Improve columns squashing for String/Array/Map/Variant/Dynamic types 2024-07-24 13:10:20 +00:00
insert_sequential_and_background_merges.xml
insert_sparse_column.xml fix tests 2024-09-26 00:11:25 +00:00
insert_values_with_expressions.xml
inserts_arrays_lowcardinality.xml
int_parsing.xml
intDiv.xml
io_uring.xml fix io_uring.xml 2024-05-15 19:15:53 +03:00
ip_trie.xml
IPv4.xml
IPv6.xml
jit_aggregate_functions.xml
jit_large_requests.xml
jit_small_requests.xml
jit_sort.xml
join_append_block.xml squash small blocks before join transforms 2024-11-03 11:25:26 +01:00
join_convert_outer_to_inner.xml Added performance tests 2024-04-28 12:52:04 +03:00
join_filter_pushdown_equivalent_sets.xml Updated implementation 2024-04-11 11:09:08 +03:00
join_filter_pushdown.xml
join_max_streams.xml
join_used_flags.xml
joins_in_memory.xml squash small blocks before join transforms 2024-11-03 11:25:26 +01:00
json_extract_rapidjson.xml
json_extract_simdjson.xml
json_input_format_part_fields.xml update test 2024-04-12 10:00:52 +08:00
json_type.xml Fix and rewrite tests 2024-07-24 19:11:51 +00:00
least_greatest_hits.xml
leftpad.xml
lightweight_delete.xml
line_as_string_parsing.xml
linear_regression.xml
local_replica.xml
logical_functions_large.xml
logical_functions_medium.xml
logical_functions_small.xml
lot_of_subcolumns.xml
low_cardinality_argument.xml
low_cardinality_from_json.xml
low_cardinality_insert.xml Perf test for LowCardinality sorting at INSERT 2024-11-24 09:46:38 +01:00
low_cardinality_query.xml
lower_upper_utf8.xml
lz4_hits_columns.xml
lz4.xml
map_populate_series.xml
map_update.xml
materialized_view_deduplication.xml squash! materialized_view_deduplication performance comparison test performance comparison test to check deduplication in MATERIALIZED VIEW's. Logic is similar to, but with a bigger insert tests/queries/0_stateless/03008_deduplication_cases_from_docs.sql 2024-08-21 12:49:33 +02:00
materialized_view_parallel_insert.xml enable parallel_view_processing in perf tests 2024-08-02 15:11:31 +02:00
materialized_view_parallelize_output_from_storages.xml
math.xml
memory_bound_merging.xml
memory_cache_friendliness.xml
merge_table_streams.xml
merge_tree_huge_pk.xml
merge_tree_insert.xml
merge_tree_many_partitions_2.xml
merge_tree_many_partitions.xml
merge_tree_simple_select.xml
min_max_index.xml
mingroupby-orderbylimit1.xml
mmap_io.xml
modulo.xml
monotonous_order_by.xml
multiif.xml fix failed uts 2024-02-29 15:00:09 +08:00
new_json_type.xml Fix and rewrite tests 2024-07-24 19:11:51 +00:00
ngram_distance.xml
nlp.xml
norm_distance.xml Add performance test for dotProduct() 2024-02-20 21:41:10 +00:00
normalize_utf8.xml
number_formatting_formats.xml
one_thousand_joins.xml squash small blocks before join transforms 2024-11-03 11:25:26 +01:00
optimize_functions_to_subcolumns.xml Update optimize_functions_to_subcolumns.xml 2024-08-09 22:56:25 +02:00
optimize_sorting_for_input_stream.xml
optimize_window_funnel.xml
optimized_select_final_one_part.xml
optimized_select_final.xml
or_null_default.xml
orc_filter_push_down.xml
orc_tuple_field_prune.xml
order_by_decimals.xml
order_by_read_in_order.xml
order_by_single_column.xml
order_by_tuple.xml
order_with_limit.xml
parallel_final.xml
parallel_index.xml
parallel_insert.xml
parallel_mv.xml Fix parallel_mv perf test 2024-06-25 08:44:36 +00:00
parquet_filter.xml
parquet_read_with_index.xml performance comparison test for output_format_parquet_write_page_index setting 2024-08-15 02:31:10 +02:00
parquet_read.xml
parse_engine_file.xml
parse_illegal_datetime.xml Reduce performance test size 2024-04-16 10:09:17 +00:00
point_in_polygon_const.xml
point_in_polygon_index.xml Support NaN number 2024-04-03 15:06:27 +08:00
point_in_polygon.xml
polymorphic_parts_l.xml
polymorphic_parts_m.xml
polymorphic_parts_s.xml Fixups 2024-07-16 20:21:21 +00:00
position_empty_needle.xml
pre_limit_no_sorting.xml
prefetch_in_aggregation.xml
prepare_hash_before_merge.xml
prewhere_with_row_level_filter.xml
prewhere.xml
push_down_limit.xml
quantile_merge.xml
quantile.xml
queries_over_aggregation.xml
query_interpretation_join.xml
rand.xml
random_fixed_string.xml
random_printable_ascii.xml
random_string_utf8.xml
random_string.xml
range_hashed_dictionary.xml
range.xml
re2_regex_caching.xml
read_from_comp_parts.xml fix read_from_comp_parts 2024-06-21 23:42:56 +01:00
read_hits_with_aio.xml
read_in_order_many_parts.xml
reading_from_file.xml
README.md Update performance README 2024-09-25 12:43:39 +00:00
redundant_functions_in_order_by.xml
reinterpret_as.xml Remove obsolete setting from tests 2024-11-10 23:43:10 +01:00
removing_group_by_keys.xml
replaceRegexp_fallback.xml Use numbers_mt to reduce duration of tests 2024-07-10 17:28:10 +02:00
replacing_final_non_intersecting.xml add a perf test 2024-10-29 15:06:03 +00:00
rewrite_array_exists.xml
rewrite_sumIf.xml
right.xml
round_down.xml
round_methods.xml
scalar2.xml
scalar.xml
schema_inference_text_formats.xml
select_format.xml
sequence_match.xml
set_disable_skip_index.xml
set_hits.xml
set_index_analysis.xml Add a test 2024-05-19 10:45:05 +02:00
set_index.xml
set.xml
short_circuit_functions.xml
simple_join_query.xml
single_fixed_string_groupby.xml
slices_hits.xml
small_block_contention.xml Remove lock from the ReadProgressCallback 2024-02-22 18:00:55 +01:00
sort_patterns.xml
sort_radix_trivial.xml
sort.xml
sparse_column_filter.xml Add isolated performance test 2024-05-29 01:12:28 +08:00
sparse_column.xml
split_filter.xml
storage_join_direct_join.xml Fix test storage_join_direct_join 2024-08-13 16:20:27 +02:00
string_join.xml squash small blocks before join transforms 2024-11-03 11:25:26 +01:00
string_set.xml
string_sort.xml
string_to_int.xml
subqueries.xml
sum_map.xml
sum.xml
sumIf.xml
synthetic_hardware_benchmark.xml
trim_numbers.xml
trim_urls.xml
trim_whitespace.xml
trivial_insert_select_from_files.xml Restart CI 2024-04-09 12:33:18 +02:00
tsv_csv_nullable_parsing.xml
unary_arithmetic_functions.xml
unary_logical_functions.xml
uniq_stored.xml
uniq_to_count.xml Fixed performance tests 2024-08-05 15:29:15 +00:00
uniq_without_key_dist.xml
uniq_without_key.xml
uniq.xml
uniqExactIf.xml
url_hits.xml
utc_timestamp_transform.xml modify test 2024-04-12 16:57:34 +08:00
vectorize_aggregation_combinators.xml
views_max_insert_threads.xml enable parallel_view_processing in perf tests 2024-08-02 15:11:31 +02:00
visit_param_extract_raw.xml
website.xml
window_functions_downstream_multithreading.xml
window_functions.xml
writing_valid_utf8.xml

ClickHouse performance tests

This directory contains .xml-files with performance tests.

How to write a performance test

First of all please check that existing tests don't cover your case. If there are no such tests then you can write your own test.

Test template:

<test>
    <!-- Optional: Specify settings -->
    <settings>
        <max_threads>1</max_threads>
        <max_insert_threads>1</max_insert_threads>
    </settings>

    <!-- Optional: Variable substitutions, can be referenced to by curly brackets {} and used in any queries -->
    <substitutions>
        <substitution>
            <name>x</name>
            <values>
                <value>10</value>
                <value>50</value>
            </values>
        </substitution>
        <substitution>
            <name>y</name>
            <values>
                <value>5</value>
                <value>8</value>
            </values>
        </substitution>
    </substitutions>

    <!-- Optional: Table setup queries -->
    <create_query>CREATE TABLE tab1 [..]</create_query>
    <create_query>CREATE TABLE tab2 [..]</create_query>

    <!-- Optional: Table population queries -->
    <fill_query>INSERT INTO tab1 [...]</fill_query>
    <fill_query>INSERT INTO tab2 [...]</fill_query>

    <!-- Benchmark queries -->
    <query>SELECT [...] WHERE col BETWEEN {x} AND {y}</query>
    <query>SELECT [...]</query>
    <query>SELECT [...]</query>

    <!-- Optional: Table teardown queries -->
    <drop_query>DROP TABLE tab1</drop_query>
    <drop_query>DROP TABLE tab2</drop_query>
</test>

If your test takes more than 10 minutes, please, add tag long to have an opportunity to run all tests and skip long ones.

How to run performance test

TODO

How to validate single test

pip3 install clickhouse_driver scipy
../../tests/performance/scripts/perf.py --runs 1 insert_parallel.xml