#!/bin/bash psql -c "create table if not exists abcd (a int, b int, c int, d int );" postgres for rows in 1000000 10000000 do for selectrows in "select random()*x,random()*x,random()*x,random()*x from generate_Series(1,$rows) x;" "select 1,random()*x,random()*x,random()*x from generate_Series(1,$rows) x;" "select 1,1,random()*x,random()*x from generate_Series(1,$rows) x;" do psql -c "truncate table abcd;" postgres > /dev/null psql -c "insert into abcd $selectrows" postgres > /dev/null psql -c "vacuum freeze abcd;" postgres > /dev/null psql -c "select pg_prewarm('abcd');" postgres > /dev/null echo "select a,b,c,d from abcd order by a,b,c,d" > bench.sql psql -c "alter system set enable_sort_optimization = off;" postgres > /dev/null psql -c "select pg_reload_conf();" postgres > /dev/null echo -n "$rows Master: " pgbench -n -f bench.sql -T 10 -M prepared postgres | grep latency psql -c "alter system set enable_sort_optimization = on;" postgres > /dev/null psql -c "select pg_reload_conf();" postgres > /dev/null echo -n "$rows Patched: " pgbench -n -f bench.sql -T 10 -M prepared postgres | grep latency done done