ClickHouse/tests/performance/sparse_column.xml
2022-05-28 12:56:38 +00:00

64 lines
2.6 KiB
XML

<test>
<substitutions>
<substitution>
<name>serialization</name>
<values>
<value>sparse</value>
<value>full</value>
</values>
</substitution>
<substitution>
<name>ratio</name>
<values>
<value>10</value>
<value>100</value>
<value>1000</value>
</values>
</substitution>
</substitutions>
<create_query>
CREATE TABLE test_full_{ratio} (id UInt64, u8 UInt8, u64 UInt64, str String)
ENGINE = MergeTree ORDER BY id
</create_query>
<create_query>
CREATE TABLE test_sparse_{ratio} (id UInt64, u8 UInt8, u64 UInt64, str String)
ENGINE = MergeTree ORDER BY id
SETTINGS ratio_of_defaults_for_sparse_serialization = 0.8
</create_query>
<create_query>SYSTEM STOP MERGES test_{serialization}_{ratio}</create_query>
<fill_query>
INSERT INTO test_{serialization}_{ratio} SELECT
number,
number % {ratio} = 0 ? rand(1) : 0,
number % {ratio} = 0 ? rand(2) : 0,
number % {ratio} = 0 ? randomPrintableASCII(64, 3) : ''
FROM numbers(100000000)
</fill_query>
<query>SELECT u8 FROM test_{serialization}_{ratio} FORMAT Null</query>
<query>SELECT u64 FROM test_{serialization}_{ratio} FORMAT Null</query>
<query>SELECT str FROM test_{serialization}_{ratio} FORMAT Null</query>
<query>SELECT erf(u64) FROM test_{serialization}_{ratio} FORMAT Null</query>
<query>SELECT lower(str) FROM test_{serialization}_{ratio} FORMAT Null</query>
<query>SELECT id FROM test_{serialization}_{ratio} ORDER BY u64 DESC LIMIT 100 FORMAT Null</query>
<query>SELECT id FROM test_{serialization}_{ratio} ORDER BY str DESC LIMIT 100 FORMAT Null</query>
<query>SELECT id FROM test_{serialization}_{ratio} ORDER BY u8, u64 DESC LIMIT 100 FORMAT Null</query>
<query>SELECT * FROM test_{serialization}_{ratio} ORDER BY u8, u64 DESC LIMIT 100 FORMAT Null</query>
<query>SELECT sum(u64) FROM test_{serialization}_{ratio} GROUP BY id % 11 FORMAT Null</query>
<query>SELECT uniq(str) FROM test_{serialization}_{ratio} GROUP BY id % 11 FORMAT Null</query>
<query>SELECT sum(u64) FROM test_{serialization}_{ratio} FORMAT Null</query>
<query>SELECT uniq(str) FROM test_{serialization}_{ratio} FORMAT Null</query>
<query>SELECT count() FROM test_{serialization}_{ratio} WHERE u64 > 0</query>
<query>SELECT count() FROM test_{serialization}_{ratio} WHERE notEmpty(str)</query>
<drop_query>DROP TABLE IF EXISTS test_{serialization}_{ratio}</drop_query>
</test>