Patched ------- dbname | nspname | relkind | relname | nrows | nblocks | mb --------+---------+---------+-----------------------+-----------+---------+--------- bench | public | r | pgbench_accounts | 100000000 | 1639345 | 12807.4 | | i | accounts_mtime | 100000000 | 385042 | 3008.1 | | i | pgbench_accounts_pkey | 100000000 | 274194 | 2142.1 | | i | tenner | 100000000 | 115352 | 901.2 (4 rows) dbname | nspname | relkind | relname | nrows | nblocks | mb --------+---------+---------+-----------------------+----------+---------+--------- bench | public | r | pgbench_accounts | 99995200 | 1676887 | 13170.2 | | i | accounts_mtime | 99995200 | 424521 | 3536.4 | | i | pgbench_accounts_pkey | 99995200 | 274194 | 2142.1 | | i | tenner | 99995200 | 115352 | 901.2 (4 rows) scaling factor: 1000 query mode: simple number of clients: 8 number of threads: 2 duration: 3600 s number of transactions actually processed: 17583489 latency average = 1.638 ms tps = 4884.300945 (including connections establishing) tps = 4884.303575 (excluding connections establishing) statement latencies in milliseconds: 0.001 \set aid1 random_gaussian(1, 100000 * :scale, 2.0) 0.001 \set aid2 random_gaussian(1, 100000 * :scale, 2.5) 0.000 \set delta random(-5000, 5000) 0.046 BEGIN; 0.175 UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid1; 0.107 SELECT abalance FROM pgbench_accounts WHERE aid = :aid2; 1.303 END; scaling factor: 1000 query mode: simple number of clients: 8 number of threads: 2 duration: 3600 s number of transactions actually processed: 83497828 latency average = 0.345 ms tps = 23193.839378 (including connections establishing) tps = 23193.852972 (excluding connections establishing) statement latencies in milliseconds: 0.001 \set aid1 random_gaussian(1, 100000 * :scale, 2.0) 0.001 \set aid2 random_gaussian(1, 100000 * :scale, 2.5) 0.001 \set aid3 random_gaussian(1, 100000 * :scale, 3.2) 0.035 BEGIN; 0.091 SELECT abalance FROM pgbench_accounts WHERE aid = :aid1; 0.088 SELECT abalance FROM pgbench_accounts WHERE aid = :aid2; 0.087 SELECT abalance FROM pgbench_accounts WHERE aid = :aid3; 0.039 END; scaling factor: 1000 query mode: simple number of clients: 8 number of threads: 2 duration: 3600 s number of transactions actually processed: 2839 latency average = 10160.741 ms tps = 0.787344 (including connections establishing) tps = 0.787345 (excluding connections establishing) statement latencies in milliseconds: 10154.700 SELECT abalance FROM pgbench_accounts WHERE mtime > now() - INTERVAL '15min' ORDER BY aid;