bench_cartesiansort.sh
application/x-sh
#!/bin/bash
set -e
psql -c "show huge_pages;" postgres
psql -c "show shared_buffers;" postgres
psql -c "create extension if not exists pg_prewarm" postgres
psql -c "alter system set max_parallel_workers = 0;" postgres > /dev/null
psql -c "alter system set work_mem = '4GB';" postgres > /dev/null
psql -c "alter system set wip_radix_sort = '$1';" postgres
psql -c "select pg_reload_conf();" postgres > /dev/null
psql -c "create table if not exists abcdefgh (a int, b int, c int, d int, e int, f int, g int, h int);" postgres
for exp in 4 5 6 7
do
psql -c "truncate table abcdefgh;" postgres > /dev/null
psql -d postgres > /dev/null <<EOF
insert into abcdefgh
select a,b,c,d,e,f,g,h from
generate_series(1,$exp) a,
generate_series(1,$exp) b,
generate_series(1,$exp) c,
generate_series(1,$exp) d,
generate_series(1,$exp) e,
generate_series(1,$exp) f,
generate_series(1,$exp) g,
generate_series(1,$exp) h;
EOF
psql -c "vacuum freeze abcdefgh;" postgres > /dev/null
psql -c "select pg_prewarm('abcdefgh');" postgres > /dev/null
echo "select * from abcdefgh order by a,b,c,d,e,f,g,h;" > bench.sql
echo -n "$exp ^ 8: "
pgbench -n -f bench.sql -T 30 -M prepared postgres | grep latency
done