Skip to content

Benchmarking Results Does presorted data help?

Alexander Löser edited this page Feb 3, 2019 · 1 revision

Executed SQL Query (TPCH-1, with hard-coded date):

SELECT
     l_returnflag,
     l_linestatus,
     sum(l_quantity) as sum_qty,
     sum(l_extendedprice) as sum_base_price,
     sum(l_extendedprice*(1-l_discount)) as sum_disc_price,
     sum(l_extendedprice*(1-l_discount)*(1+l_tax)) as sum_charge,
     avg(l_quantity) as avg_qty,
     avg(l_extendedprice) as avg_price,
     avg(l_discount) as avg_disc,
     count(*) as count_order
FROM
     lineitem
WHERE
     l_shipdate <= '1998-12-01'
GROUP BY
     l_returnflag, l_linestatus
ORDER BY
     l_returnflag, l_linestatus

TPCH Tables used for this benchmark can be found in the vm-nordes at /home/Alexander.Loeser/hyrise/lineitem.csv and /home/Alexander.Loeser/hyrise/lineitem_sorted_linestatus_returnflag.csv.
Note that the filtering (WHERE condition) does not eliminate any tuples. However, I decided to keep it that way, as more data is more interesting for our benchmarking, and the filter should introduce reference segments, while we would otherwise work on the original table (which the TPCH-Queries do not do).

All results measurements were done by executing the query listed above once in hyriseConsole

Unencoded, Unsortiert, Sort
Execution info: [PARSE: 117 µs 410 ns, SQL TRANSLATE: 377 µs 624 ns, OPTIMIZE: 419 µs 396 ns, LQP TRANSLATE: 369 µs 893 ns, EXECUTE: 9 s 156 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]

Dictionary, Unsortiert, Sort
Execution info: [PARSE: 32 µs 970 ns, SQL TRANSLATE: 149 µs 339 ns, OPTIMIZE: 173 µs 507 ns, LQP TRANSLATE: 60 µs 458 ns, EXECUTE: 8 s 783 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]

Unencoded, Sortiert, Sort
Execution info: [PARSE: 139 µs 240 ns, SQL TRANSLATE: 350 µs 933 ns, OPTIMIZE: 417 µs 857 ns, LQP TRANSLATE: 12 ms 528 µs, EXECUTE: 1 s 855 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]

Dictionary, Sortiert, Sort
Execution info: [PARSE: 70 µs 803 ns, SQL TRANSLATE: 268 µs 765 ns, OPTIMIZE: 259 µs 478 ns, LQP TRANSLATE: 71 µs 208 ns, EXECUTE: 1 s 356 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]

Unencoded, Unsortiert, Hash Execution info: [PARSE: 69 µs 830 ns, SQL TRANSLATE: 262 µs 263 ns, OPTIMIZE: 349 µs 248 ns, LQP TRANSLATE: 120 µs 300 ns, EXECUTE: 2 s 686 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]

Dictionary, Unsortiert, Hash Execution info: [PARSE: 36 µs 640 ns, SQL TRANSLATE: 209 µs 416 ns, OPTIMIZE: 191 µs 449 ns, LQP TRANSLATE: 66 µs 996 ns, EXECUTE: 2 s 490 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]

Unencoded, Sortiert, Hash Execution info: [PARSE: 84 µs 201 ns, SQL TRANSLATE: 190 µs 556 ns, OPTIMIZE: 227 µs 696 ns, LQP TRANSLATE: 205 µs 778 ns, EXECUTE: 2 s 829 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]

Dictionary, Sortiert, Hash Execution info: [PARSE: 60 µs 677 ns, SQL TRANSLATE: 241 µs 106 ns, OPTIMIZE: 357 µs 374 ns, LQP TRANSLATE: 122 µs 767 ns, EXECUTE: 2 s 552 ms (wall time) | QUERY PLAN CACHE HITS: 0/1 statement(s)]