Last active
August 11, 2023 08:57
-
-
Save erichosick/123510d42586ec78bdce81d2e60d75e0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- You must run the benchmark schema localed in | |
-- https://gist.github.com/erichosick/eeadc41e33ea2a91bd136b9433e73dc7 | |
-- before running the following benchmark | |
DO $$ | |
DECLARE d_exec_count int = 20; | |
DECLARE d_row_count int = 3e6; | |
BEGIN | |
CALL benchmark.execute( | |
'gen_random_uuid', | |
'gen_random_uuid', | |
d_row_count, | |
FORMAT( | |
'SELECT gen_random_uuid() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
FORMAT( | |
'SELECT gen_random_uuid() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
d_exec_count | |
); | |
CALL benchmark.execute( | |
'gen_random_uuid', | |
'uuid_generate_v1', | |
d_row_count, | |
FORMAT( | |
'SELECT gen_random_uuid() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
FORMAT( | |
'SELECT uuid_generate_v1() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
d_exec_count | |
); | |
CALL benchmark.execute( | |
'gen_random_uuid', | |
'uuid_generate_v4', | |
d_row_count, | |
FORMAT( | |
'SELECT gen_random_uuid() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
FORMAT( | |
'SELECT uuid_generate_v4() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
d_exec_count | |
); | |
CALL benchmark.execute( | |
'uuid_generate_v1', | |
'uuid_generate_v1mc', | |
d_row_count, | |
FORMAT( | |
'SELECT uuid_generate_v1() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
FORMAT( | |
'SELECT uuid_generate_v1mc() | |
FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
d_exec_count | |
); | |
CALL benchmark.execute( | |
'uuid_generate_v3', | |
'uuid_generate_v5', | |
d_row_count, | |
FORMAT( | |
'SELECT uuid_generate_v3( | |
uuid_ns_url(), | |
RANDOM()::text | |
) FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
FORMAT( | |
'SELECT uuid_generate_v5( | |
uuid_ns_url(), | |
RANDOM()::text | |
) FROM generate_series(%s,%s) AS series;', | |
1, d_row_count | |
), | |
d_exec_count | |
); | |
END; | |
$$; | |
SELECT | |
thresh.faster_sql, | |
thresh.description_sql_left || ' - ' | |
|| thresh.description_sql_right || ' | ' | |
|| thresh.times_faster || 'x | ' | |
|| thresh.average_left || ' ± ' || | |
thresh.standard_deviation_left || ' | ' || | |
thresh.average_right || ' ± ' || | |
standard_deviation_right AS data_row | |
FROM benchmark.compare_result_outcome AS thresh | |
INNER JOIN benchmark.compare AS comp | |
ON comp.description_sql_left = thresh.description_sql_left | |
AND comp.description_sql_right = thresh.description_sql_right | |
ORDER BY comp.created_on ASC; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment