run_bench.sh
application/x-shellscript
Filename: run_bench.sh
Type: application/x-shellscript
Part: 1
#!/bin/bash
TEMPFILE="/tmp/pgbench.sql" # test query
for AMOUNT in 100 1000 10000 100000 1000000; do
for TYPE in int bigint uuid text; do
TABLENAME="${TYPE}${AMOUNT}"
echo "running $TYPE $AMOUNT"
if [ "$AMOUNT" == "100000" ]; then
DURATION=120 # 2 min
elif [ "$AMOUNT" == "1000000" ]; then
DURATION=180 # 3 min
else
DURATION=60 # 1 min
fi
# Hash Aggregate
psql -c 'ALTER SYSTEM SET enable_indexagg to OFF'
psql -c 'ALTER SYSTEM SET enable_sort to OFF;'
psql -c 'ALTER SYSTEM SET enable_hashagg to ON;'
psql -c 'SELECT pg_reload_conf();'
echo "select i, sum(j) from $TABLENAME group by 1 order by 1" >"$TEMPFILE"
pgbench -f "$TEMPFILE" -n -T $DURATION > "hashagg_$TABLENAME"
# Group Aggregate
psql -c 'ALTER SYSTEM SET enable_indexagg to OFF'
psql -c 'ALTER SYSTEM SET enable_sort to ON;'
psql -c 'ALTER SYSTEM SET enable_hashagg to OFF;'
psql -c 'SELECT pg_reload_conf();'
echo "select i, sum(j) from $TABLENAME group by 1 order by 1;" >"$TEMPFILE"
pgbench -f "$TEMPFILE" -n -T $DURATION > "groupagg_$TABLENAME"
# Index Aggregate
psql -c 'ALTER SYSTEM SET enable_indexagg to ON'
psql -c 'ALTER SYSTEM SET enable_sort to OFF;'
psql -c 'ALTER SYSTEM SET enable_hashagg to OFF;'
psql -c 'SELECT pg_reload_conf();'
echo "select i, sum(j) from $TABLENAME group by 1 order by 1" >"$TEMPFILE"
pgbench -f "$TEMPFILE" -n -T $DURATION > "indexagg_$TABLENAME"
done
done
# echo "running bigtext"
TABLENAME='bigtext'
DURATION=240 # 4 min
# Hash Aggregate
psql -c 'ALTER SYSTEM SET enable_indexagg to OFF'
psql -c 'ALTER SYSTEM SET enable_sort to OFF;'
psql -c 'ALTER SYSTEM SET enable_hashagg to ON;'
psql -c 'SELECT pg_reload_conf();'
echo "select i, sum(j) from $TABLENAME group by 1 order by 1" >"$TEMPFILE"
pgbench -f "$TEMPFILE" -n -T $DURATION > "hashagg_$TABLENAME"
# Group Aggregate
psql -c 'ALTER SYSTEM SET enable_indexagg to OFF'
psql -c 'ALTER SYSTEM SET enable_sort to ON;'
psql -c 'ALTER SYSTEM SET enable_hashagg to OFF;'
psql -c 'SELECT pg_reload_conf();'
echo "select i, sum(j) from $TABLENAME group by 1 order by 1;" >"$TEMPFILE"
pgbench -f "$TEMPFILE" -n -T $DURATION > "groupagg_$TABLENAME"
# Index Aggregate
psql -c 'ALTER SYSTEM SET enable_indexagg to ON'
psql -c 'ALTER SYSTEM SET enable_sort to OFF;'
psql -c 'ALTER SYSTEM SET enable_hashagg to OFF;'
psql -c 'SELECT pg_reload_conf();'
echo "select i, sum(j) from $TABLENAME group by 1 order by 1" >"$TEMPFILE"
pgbench -f "$TEMPFILE" -n -T $DURATION > "indexagg_$TABLENAME"